Hardware: MacBook Pro (Retina, 15 pollici, metà 2015) \ OS: OS X El Capitan, 10.11.6
Problema: ho un progetto standard maven che costruisco usando mvn clean install dalla riga di comando. Ricevo un errore nel processo di installazione che dice Autorizzazione negata per il file jar creato in modo che non possa copiarlo.
Guardando nella directory vedo:
$ 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
Se lo faccio ls -le
non vedo alcun ACL esteso. Se provo a copiare il file JAR di grandi dimensioni:
$ 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 ~
$
È solo quel singolo file che non verrà copiato. Ho scoperto che posso mv
archiviare il file in altri luoghi, ma la copia non funziona, non importa dove l'ho messa.
Ciò che è interessante è che posso spostare il mio codice ovunque nel file system, rieseguire la build e quel singolo file creato ha lo stesso problema.
Ho avviato la console di ripristino e ripristinato gli ACL e le autorizzazioni per la mia home directory senza alcun effetto. Ho eseguito Utility Disco e mostra che tutto va bene.
Qualcuno ha mai visto qualcosa di simile prima? Altre persone Mac qui stanno dicendo che dovrò avviare il singolo utente e fsck -y
l'unità.
Informazioni addizionali
Per impostazione predefinita, il passaggio di installazione di Maven utilizza il plug-in maven-shade per creare un uber-jar. È questo super-vaso che non può essere copiato. Se disabilito il plug-in maven-shade, in modo che il JAR finale sia un normale vaso, non vedo il problema.
Ho Trend Micro in esecuzione sul mio Mac se ciò potrebbe fare la differenza.
Ho scoperto che se sovrascrivo l'Uber-Jar con dati diversi (stesso nome) il file diventa copiabile. Per esempio:
cat > rules-0.0.1-SHAPSHOT.jar
asdf
^D
Successivamente, posso copiare il file.
Ho provato a guardare le cose con, opensnoop
ma tutto quello che vedo è un "permesso negato" su un aperto da java
.
lsof
per controllare)? Il file rimane non copiabile dopo un riavvio?