Ecco lo scenario:Maven SNAPSHOT nomi dei file jar non è coerente con Assemblea Maven nel file manifesto
Due progetto Maven 3 costruisce.
La build 1 ha i vasi di istantanee che vengono distribuiti su Nexus.
Build 2 ha dipendenze le istantanee, cui si fa riferimento come 1.0.0-SNAPSHOT, che viene confezionato e zip utilizzando il comando mvn clean package assembly:single
.
Il problema che ci si imbatte in: Di tanto in tanto, quando viene creato il gruppo, il file manifesto per il vaso a volte dire some.jar.1.0.0-SNAPSHOT e, talvolta, si dirà some.jar. 1.0.0-datetime stamp, causando così errori di classe non definiti.
C'è un modo per prevenire questo problema di denominazione nel file manifest?
--edit--
Ulteriori ricerche hanno scoperto i seguenti:
"Se l'istantanea è stata risolta da un repo allora sarà timestamped, se ne è venuto dal reattore o locale repo, allora sarà -snapshot. il plugin chiama nella logica risoluzione Maven quindi questo è il nucleo Maven comportamento ".
questo è l'i esatto ssue in cui viene eseguito. Il file manifest del 2 ° build ha sempre una voce ./lib/Framework-1.0.0-SNAPSHOT.jar dove il nome del file jar effettivo cambia tra ./lib/Framework-1.0.0-SNAPSHOT.jar e ./lib/Framework-1.0.0-timestamp.jar in base alla citazione di cui sopra.
[Questo] (http://stackoverflow.com/questions/2516860/maven-how-to-create-assembly-with-snapshot-artifacts-without-timestamps-file-na) potrebbe aiutare, descrive l'impostazione outputfilenamemapping per rendere coerenti i nomi dei file nelle istantanee. – prunge
Come viene generato il manifest di SNAPSHOT e come viene configurato per produrre queste informazioni? Inoltre, perché è l'assembly del pacchetto mvn clean: singolo chiamato e non semplicemente mvn clean package causa il pacchetto chiamerà il assembly-plugin configurato. – khmarbaise
Non c'è manifest per lo stesso SNAPSHOT. Il manifest con il problema è nella seconda build. E con l'aiuto di un collaboratore, abbiamo trovato questo 'Se l'istantanea è stata risolta da un repository allora verrà timestampata, se proviene dal reattore o dal repository locale, allora sarà -SNAPSHOT. Il plug-in richiama la logica di risoluzione di Maven, quindi questo è il comportamento di base del computer. Questo è il problema esatto che sto avendo, ho solo bisogno di aggirare questo. Per quanto riguarda il motivo dell'assemblaggio del pacchetto: viene chiamato single, beh, perché siamo nuovi per Maven nel suo complesso. – Thaldin