Il file creato durante la generazione di maven non può essere copiato

2

Hardware: MacBook Pro (Retina, 15 pollici, metà 2015) \ OS: OS X El Capitan, 10.11.6

Problema: Ho un progetto standard di maven che costruisco usando mvn clean install dalla riga di comando. Ricevo un errore nel processo di installazione che dice Permesso negato per il file jar creato, quindi non può 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 faccio un 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 del file in altri posti, ma la copia non funziona, non importa dove l'ho inserita.

Ciò che è interessante è che posso spostare il mio codice ovunque nel file system, rieseguire la build e che il singolo file creato ha lo stesso problema.

Ho avviato la console di ripristino e resettato gli ACL e le autorizzazioni per la mia home directory senza alcun effetto. Ho eseguito Utility Disco e mostra tutto a posto.

Qualcuno ha mai visto qualcosa di simile prima? Altri utenti Mac stanno dicendo che avrò bisogno di avviare il singolo utente e fsck -y del disco.

Informazioni aggiuntive

Per impostazione predefinita, la procedura di installazione di Maven utilizza il plugin maven-shade-plug per creare un uber-jar. È questo uber-jar che non può essere copiato. Se disattivo il plugin maven-shade-in modo che il JAR finale sia un normale jar, non vedo il problema.

Trend Micro è in esecuzione sul mio Mac se ciò potrebbe fare la differenza.

Ho scoperto che se sovrascrivo il uber-jar con dati diversi (stesso nome) il file diventa copiabile. Ad esempio:

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

Dopodiché, posso copiare il file.

Ho provato a guardare le cose con opensnoop , ma tutto quello che vedo è un "Permesso negato" su un open di java .

    
posta Matthew Markland 22.12.2016 - 15:39
fonte

1 risposta

1

Sebbene questa sia una risposta insoddisfacente, l'aggiornamento alla versione più recente del plugin maven-shade "risolve" il problema.

    
risposta data 03.01.2017 - 21:19
fonte

Leggi altre domande sui tag