2015-11-22 8 views
7

Ich habe ein Maven-Multi-Modul-Projekt mit einem Modul namens mod1, die ich versuche, in einen Ordner aus dem App-Ordner /project jars mit mvn assembly:assembly hinzufügen , wo die App pom.xml ist.Fehler beim Erstellen der Montage Archiv ist: Sie müssen mindestens eine Datei gesetzt

Fehler:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-assembly-plugin:2.3:single (assembly) on project wrapper: Failed to create assembly 
: Error creating assembly archive bin: You must set at least one file. -> [Help 1] 

Projektordnerstruktur:

app 
    | pom.xml 
    | src | main  | ... 
wrapper 
    | pom.xml 
    | src | main  | ... 
mod1 
    | pom.xml 
    | src | main  | ... 

// After mvn assembly:assembly 

project jars 
    | mod1.jar 

mod1 pom.xml

<project> 
    <groupId>org.test</groupId> 
    <artifactId>mod1</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>jar</packaging> 
</project> 

Wrapper pom.xml

<groupId>org.test.app</groupId> 
<artifactId>wrapper</artifactId> 
<version>1.0-SNAPSHOT</version> 
<packaging>pom</packaging> 

<build> 
    <plugins> 
    <plugin> 
     <artifactId>maven-assembly-plugin</artifactId> 
     <version>2.3</version> 
     <executions> 
     <execution> 
      <id>assembly</id> 
      <phase>package</phase> 
      <goals> 
      <goal>single</goal> 
      </goals> 
      <configuration> 
      <descriptors> 
       <descriptor>src/main/assembly/modules-assembly.xml</descriptor> 
      </descriptors> 
      </configuration> 
     </execution> 
     </executions> 
    </plugin> 
    </plugins> 
</build> 

Der Deskriptor (src/main/assembly/modules-assembly.xml):

<assembly> 
    <id>bin</id> 
    <baseDirectory>/</baseDirectory> 

    <formats> 
     <format>zip</format> 
    </formats> 

    <includeBaseDirectory>false</includeBaseDirectory> 

    <moduleSets> 
     <moduleSet> 
      <useAllReactorProjects>true</useAllReactorProjects> 
      <includes> 
       <include>org.test:mod1.jar</include> 
      </includes> 
      <binaries> 
       <attachmentClassifier>jar-with-dependencies</attachmentClassifier> 
       <outputDirectory>/project jars</outputDirectory> 
       <unpack>false</unpack> 
      </binaries> 
     </moduleSet> 
    </moduleSets> 
</assembly> 

UPDATE

App pom.xml

<project> 
    <groupId>org.test</groupId> 
    <artifactId>app</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>pom</packaging> 

    <modules> 
    <module>../mod1</module> 
    <module>../wrapper</module> 
    </modules> 
</project> 
+0

Könnten Sie mit 'versuchen org.test: MOD1', das heißt ohne die '.jar'? – Tunaki

+0

Ich bekomme den gleichen Fehler @Tunaki –

+0

Wo starten Sie diesen Befehl mvn Assembly: Assembly? –

Antwort

1

Warum Sie im Projekt 'App' die beiden Module 'Wrapper' deklarieren und ' mod1 '. App muss 'mod1' bei Abhängigkeits-Lib verwenden?

tun:

Add parent pom.xml and 3 modules : 
    +app 
    +wrapper 
    +mod1 

pom App:

<dependency> 
<groupId>${groupId}</groupId> 
<artifactId>mod1</artifactId> 
</dependency> 

<plugin> 
<groupId>org.apache.maven.plugins</groupId> 
<artifactId>maven-jar-plugin</artifactId> 
<configuration> 
    <archive> 
    <manifest> 
    <addClasspath>true</addClasspath> 
    <classpathPrefix>project/</classpathPrefix> 
    </manifest> 
</archive> 
</configuration> 
</plugin> 

erstellen assembly.xml und Filterabhängigkeit mit <includes> und <excludes>.

die Baugruppe zu erstellen, verwenden Sie diese Antwort: Maven build assembly with dependencies

Verwandte Themen