2009-06-09 19 views
5

Ciao Sto cercando di creare un riferimento descrittore personalizzato nel mio padre pom che pacchetti tutte le dipendenze con le fonti. Ho avuto l'assembly.xml inchiodato abbastanza bene, ma quando lo aggiungo alla mia assemblea POM di base: il montaggio viene a mancare in questo modo:Maven assembly: assembly

[INFO] [assembly:assembly] 
[INFO] ------------------------------------------------------------------------ 
[ERROR] BUILD ERROR 
[INFO] ------------------------------------------------------------------------ 
[INFO] Error reading assemblies: No assembly descriptors found. 

[INFO] ------------------------------------------------------------------------ 
[INFO] Trace 
org.apache.maven.lifecycle.LifecycleExecutionException: Error reading assemblies: No assembly descriptors found. 

Ma il montaggio: singolo sembra funzionare correttamente. Ho provato ad aggiungere anche il ref di jar-with-depend in POM, ma non sono sicuro che ciò sia possibile.

Ecco quello che ho nel mio pom di base:

<plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <version>2.2-beta-3</version> 
    <dependencies> 
     <dependency> 
      <groupId>mycompany.jar.assembly</groupId> 
      <artifactId>jar-with-dependencies-and-sources-test</artifactId> 
      <version>1.0.0-SNAPSHOT</version> 
     </dependency> 
    </dependencies> 
    <executions> 
     <execution> 
      <id>make-assembly</id> 
      <phase>package</phase> 
      <goals> 
       <goal>single</goal> 
      </goals> 
      <configuration> 
       <descriptors> 
        <descriptor>assembly.xml</descriptor> 
       </descriptors> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

Qualcuno là fuori sa che per arrivare a questo lavoro quando invoco assemblaggio mvn: assemblaggio dalla riga di comando?

Grazie in anticipo.

+0

Cosa produce mvn -X? –

risposta

7

Non sono sicuro, ma ho un sospetto. Si definisce assembly: single come parte della fase del pacchetto e si identifica il descrittore lì nell'elemento di esecuzione. Questo potrebbe significare che il plugin non sa dove cercare il descrittore quando si esegue assembly: assembly. Prova a copiare l'elemento <configuration> all'esterno dell'elemento <executions>.

Uno dei miei pon assomiglia a questo, e io uso il montaggio: il montaggio tutto il tempo:

<plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <version>2.1</version> 
    <configuration> 
    <finalName>myJar</finalName> 
    <descriptors> 
     <descriptor>src/main/config/descriptor.xml</descriptor> 
    </descriptors> 
    <archive> 
     <manifest> 
     <mainClass>org.foo.Bar</mainClass> 
     </manifest> 
    </archive> 
    </configuration> 
</plugin> 

Nota src/main/config non è un percorso standard Maven, ma non hanno definito alcun trattamento speciale di esso .

+1

Questo ha funzionato! Grazie mille :) – javamonkey79

+0

Il motivo per cui l'elemento si trova all'interno dell'elemento è perché la pagina del plugin lo fa in quel modo. Vedi: http://maven.apache.org/plugins/maven-assembly-plugin/examples/sharing-descriptors.html. Mi chiedo che la pagina sia obsoleta. – aberrant80

0

Dove hai il tuo assembly.xml? La directory di lavoro di Maven è la directory di un modulo (quello che contiene pom.xml). Se assembly.xml non si trova nella stessa directory di questo pom.xml, è necessario specificare il percorso

+0

assembly.xml è in src/main/resources/assemblies di: mycompany.jar.assembly jar-with-dependencies-and-sources-test jar – javamonkey79