El archivo creado durante la compilación maven no se puede copiar

2

Hardware: MacBook Pro (Retina, 15 pulgadas, mediados de 2015) \ OS: OS X El Capitán, 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 Permiso denegado para el archivo jar creado para que no pueda copiarlo.

Buscando en el directorio que 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 solo ese único archivo que no se copiará. Descubrí que puedo mv el archivo en otros lugares, pero copiar no funciona sin importar dónde lo coloque.

Lo que sí es interesante es que puedo mover mi código a cualquier parte del sistema de archivos, volver a ejecutar la compilación y ese único archivo creado tiene el mismo problema.

He arrancado a la consola de recuperación y restablecí las ACL y los permisos de mi directorio de inicio sin ningún efecto. He ejecutado la Utilidad de Disco y muestra que todo está bien.

¿Alguien ha visto algo como esto antes? Otras personas de Mac aquí están diciendo que tendré que arrancar un solo usuario y fsck -y la unidad.

Información adicional

De forma predeterminada, el paso de instalación de Maven utiliza el plugin de maven-shade para crear un uber-jar. Es este uber-jar que no se puede copiar. Si desactivo el plug-in de maven-shade, para que el JAR final sea un tarro normal, no veo el problema.

Tengo Trend Micro ejecutándose en mi Mac si eso pudiera hacer una diferencia.

Descubrí que si sobrescribo el uber-jar con datos diferentes (el mismo nombre), el archivo se puede copiar. Por ejemplo:

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

Después de eso, puedo copiar el archivo.

He intentado ver cosas con opensnoop , pero todo lo que veo es un "Permiso denegado" en una apertura de java .

    
pregunta Matthew Markland 22.12.2016 - 15:39

1 respuesta

1

Aunque esta es una respuesta insatisfactoria, la actualización a la versión más reciente de maven-shade-plugin "solucionó" el problema.

    
respondido por el Matthew Markland 03.01.2017 - 21:19

Lea otras preguntas en las etiquetas