2009-06-09 16 views
5

Hola Estoy intentando crear un descriptor de referencia personalizado en mi pom principal que empaqueta todas las dependencias con las fuentes. Me dio la assembly.xml clavado bastante bien, pero cuando lo añado a mi ensamblaje POM de base: el montaje falla de esta manera:Ensamblaje de Maven: ensamblaje

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

Pero montaje: solo parece funcionar correctamente. También intenté agregar el ref jar-with-depencies al POM, pero no estoy seguro de si esto es posible.

Aquí es lo que tengo en mi base de pom:

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

¿Alguien por ahí sabe que para conseguir que esto funcione cuando invoco montaje mvn: el montaje de la línea de comandos?

Gracias de antemano.

+0

¿Qué significa ejecutar mvn -X? –

Respuesta

7

No estoy seguro, pero tengo una sospecha. Usted define assembly: single como parte de la fase del paquete, e identifica el descriptor allí en el elemento de ejecución. Esto puede significar que el complemento no sabe dónde buscar el descriptor cuando ejecuta assembly: assembly. Intente copiar su elemento <configuration> en el exterior del elemento <executions>.

Una de mis poms se parece a esto, y uso de montaje: montaje de todo el tiempo:

<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 no es una ruta estándar Maven, pero no han definido ninguna manipulación especial de ella .

+1

Eso lo hizo! Muchas gracias :) – javamonkey79

+0

La razón por la cual el elemento está dentro del elemento se debe a que la página del complemento le gusta. Ver: http://maven.apache.org/plugins/maven-assembly-plugin/examples/sharing-descriptors.html. Me pregunto si esa página está desactualizada. – aberrant80

0

¿Dónde tiene su assembly.xml? El directorio de trabajo de Maven es el directorio de un módulo (el que contiene pom.xml). Si su assembly.xml no está en el mismo directorio que este pom.xml, debe especificar la ruta

+0

assembly.xml está en src/main/resources/asambleas de: mycompany.jar.assembly jar-with-dependence-and-sources-test jar – javamonkey79

Cuestiones relacionadas