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
.