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 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 ningún ACL extendido. 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á. He descubierto que puedo mv
El archivo está en otros lugares, pero copiar no funciona, no importa dónde lo coloque.
Lo que sí es interesante es que puedo mover mi código a cualquier lugar 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 he restablecido 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 habia 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
Por defecto, el paso de instalación de Maven usa el plugin de maven-shade para construir 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 tratado de ver cosas con opensnoop
pero todo lo que veo es un "Permiso denegado" en un abierto por java
.
fuente
lsof
verificar)? ¿El archivo permanece sin posibilidad de copia después de un reinicio?Respuestas:
Aunque esta es una respuesta insatisfactoria, la actualización a la última versión del plugin de maven-shade "solucionó" el problema.
fuente