2015-11-22 9 views
7

Ho un progetto Maven multi-modulo con un modulo chiamato mod1 che sto cercando di aggiungere in una cartella /project jars con mvn assembly:assembly dalla cartella app , dove è l'app pom.xml.Errore archivio assemblaggio creando bin: È necessario impostare almeno un file

errore:

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

struttura di cartelle di progetto:

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> 

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

Il descrittore (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

Potrebbe provare con ' org.test: Mod1', vale a dire senza il '.jar'? – Tunaki

+0

Ottengo lo stesso errore @Tunaki –

+0

Dove si avvia questo comando mvn assembly: assembly? –

risposta

1

Perché si dichiara nella 'app' progetto dei due moduli 'involucro' e ' MOD1' . l'app deve usare "mod1" alla dipendenza lib?

fare questo:

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> 

Creare assembly.xml e dipendenza filtro con <includes> e <excludes>.

per creare l'assembly, utilizzare questa risposta: Maven build assembly with dependencies

Problemi correlati