2009-06-09 16 views
5

Hallo Ich versuche, einen benutzerdefinierten Deskriptor Ref in meinem Eltern Pom, die alle Abhängigkeiten mit Quellen verpackt. Ich habe die assembly.xml ziemlich gut festgenagelt, aber wenn ich es zu meiner Basis POM Montage hinzu: Montage nicht wie so: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. 

Aber Montage: single scheint korrekt zu funktionieren. Ich habe versucht, die Referenz "jar-with-dependencies" ebenfalls in das POM einzufügen, aber ich bin mir nicht sicher, ob das überhaupt möglich ist.

Hier ist, was ich in meiner Basis pom haben:

<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> 

Hat jemand da draußen weiß, wer diese Arbeit zu bekommen, wenn ich mvn Montage aufrufen: Montage von der Kommandozeile?

Vielen Dank im Voraus.

+0

Was produziert mvn -X? –

Antwort

7

Ich bin mir nicht sicher, aber ich habe einen Verdacht. Sie definieren assembly: single als Teil der Paketphase und identifizieren den Deskriptor dort im Ausführungselement. Dies kann bedeuten, dass das Plugin beim Ausführen von assembly: assembly nicht weiß, wo nach dem Deskriptor gesucht werden soll. Versuchen Sie, Ihr <configuration> Element außerhalb des Elements <executions> zu kopieren.

Einer meiner Poms sieht wie folgt aus, und ich verwende Montage: Montage die ganze Zeit:

<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> 

Hinweis src/main/config kein Maven Standard-Pfad ist, aber ich habe keine spezielle Handhabung davon definiert .

+1

Das war es! Vielen Dank :) – javamonkey79

+0

Der Grund, warum das Element innerhalb des Elements ist, ist, weil die Seite des Plugins es so macht. Siehe: http://maven.apache.org/plugins/maven-assembly-plugin/examples/sharing-descriptors.html. Ich frage mich, ob diese Seite veraltet ist. – aberrant80

0

Wo haben Sie Ihre Assembly.xml? Mavens Arbeitsverzeichnis ist das Verzeichnis eines Moduls (jenes, das pom.xml enthält). Wenn Ihre Assembly.xml nicht im selben Verzeichnis wie diese pom.xml ist, sollten Sie den Pfad angeben

+0

assembly.xml ist in src/main/resources/assemblies von: mycompany.jar.assembly jar-mit-abhängigkeiten-und-quellen-test jar – javamonkey79

Verwandte Themen