2 votos

El archivo creado durante la construcción de maven no puede ser copiado

Hardware: MacBook Pro (Retina, 15 pulgadas, mediados de 2015)\N-. SO: OS X El Capitan, 10.11.6

Problema: Tengo un proyecto estándar de maven que construyo usando mvn clean install desde la línea de comandos. Recibo un error en el proceso de instalación que dice Permission Denied para el archivo jar creado por lo que no puede copiarlo.

Mirando en el directorio veo:

$ cd target/
$ ls -al
total 230856
drwxr-xr-x  10 u1  g1        340 Dec 21 16:08 ./
drwxr-xr-x  12 u1  g1        408 Dec 21 16:08 ../
drwxr-xr-x   5 u1  g1        170 Dec 21 16:08 classes/
drwxr-xr-x   4 u1  g1        136 Dec 21 16:08 generated-sources/
drwxr-xr-x   3 u1  g1        102 Dec 21 16:08 jcasgen/
drwxr-xr-x   3 u1  g1        102 Dec 21 16:08 maven-archiver/
drwxr-xr-x   3 u1  g1        102 Dec 21 16:08 maven-status/
-rw-r--r--   1 u1  g1      38239 Dec 21 16:08 rules-0.0.1-SNAPSHOT-sources.jar
-rw-r--r--   1 u1  g1  118102157 Dec 21 16:08 rules-0.0.1-SNAPSHOT.jar
-rw-r--r--   1 u1  g1      53247 Dec 21 16:08 original-rules-0.0.1-SNAPSHOT.jar

Si hago un ls -le No veo ninguna ACL extendida. Si intento copiar el archivo JAR grande:

$ cp rules-0.0.1-SNAPSHOT.jar ~
cp: rules-0.0.1-SNAPSHOT.jar: Permission denied
$ sudo cp rules-0.0.1-SNAPSHOT.jar ~
Password:
cp: rules-0.0.1-SNAPSHOT.jar: Permission denied
$ cp rules-0.0.1-SNAPSHOT-sources.jar ~
$ 

Es ese único archivo el que no se copia. He descubierto que puedo mv el archivo en otros lugares, pero la copia no funciona independientemente de dónde lo ponga.

Lo que también es interesante es que puedo mover mi código a cualquier lugar en el sistema de archivos, volver a ejecutar la construcción, y ese único archivo creado tiene el mismo problema.

He arrancado en la consola de recuperación y he restablecido las ACL y los permisos de mi directorio de inicio, pero no ha surtido efecto. He ejecutado la Utilidad de Discos y muestra que todo está bien.

¿Alguien ha visto algo así antes? Otros compañeros de Mac aquí están diciendo que voy a tener que arrancar un solo usuario y fsck -y la unidad.

Información adicional

Por defecto, el paso de instalación de maven utiliza el plugin maven-shade para construir un uber-jar. Es este uber-jar el que no puede ser copiado. Si desactivo el maven-shade-plugin, para que el JAR final sea un jar normal, no veo el problema.

Tengo Trend Micro funcionando en mi Mac, por si eso pudiera suponer una diferencia.

He descubierto que si sobrescribo el uber-jar con datos diferentes (mismo nombre) el archivo se vuelve copiable. Por ejemplo:

cat > rules-0.0.1-SHAPSHOT.jar
asdf
^D

Después de eso, puedo copiar el archivo.

He tratado de ver las cosas con opensnoop pero todo lo que veo es un "Permiso denegado" en un abierto por java .

1voto

Faisal khan Puntos 12697

Aunque esta es una respuesta poco satisfactoria, la actualización a la última versión del plugin maven-shade "arregló" el problema.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X