2009-10-15 10 views

risposta

12

Sì, è necessario specificare la posizione. Secondo la pagina Configuration and Usage, questo è fatto in questo modo:

<project> 
    [...] 
    <build> 
    [...] 
    <plugins> 
     <plugin> 
     <artifactId>maven-assembly-plugin</artifactId> 
     <configuration> 
      <descriptors> 
      <descriptor>src/main/assembly/src.xml</descriptor> 
      </descriptors> 
     </configuration> 
     [...] 
</project> 

In realtà, mi consiglia di utilizzare src/main/assembly come location.

+3

Grazie, anche per il collegamento che punta a quella pagina di documentazione. Sono riuscito a capirlo nello stesso periodo in cui hai postato, ma penso che sia molto confuso che queste informazioni non siano proprio lì dove cerchi come scrivere i descrittori di assiemi. –

+0

Non funziona. Vedi http://stackoverflow.com/questions/2463721/maven-assembly-error-reading-assemblies/2464350#2464350 –

1

In un modo un po 'indiretto, alla fine sono stato in grado di scoprirlo. Innanzitutto, this page sulla condivisione dei descrittori di assiemi fornisce indirettamente alcuni suggerimenti.

Il mio primo errore è stato utilizzare descriptorRef anziché descriptor nella configurazione del mio plug-in. Quando mi fisso che, e ha creato la struttura di directory mostrata nella pagina linkata sopra, ho avuto una serie di messaggi di errore che ha rivelato come il plugin cerca di risolvere il nome descrittore hai dato:

[INFO] Searching for file location: /path/to/project/dependency-collection.xml

[INFO] File: /path/to/project/dependency-collection.xml does not exist.

Quindi, mettendolo nella root del progetto dovrebbe funzionare ...

[INFO] Invalid artifact specification: 'dependency-collection.xml'. Must contain at least three fields, separated by ':'.

... o scaricandole da un artefatto Maven ...

[INFO] Failed to resolve classpath resource: /assemblies/dependency-collection.xml from classloader: ClassRealm[/plugins/org.apache.maven.plugins:maven-assembly-plugin:[email protected]/thread:main, parent: ClassRealm[plexus.core, parent: null]]

[INFO] Failed to resolve classpath resource: dependency-collection.xml from classloader: ClassRealm[/plugins/org.apache.maven.plugins:maven-assembly-plugin:[email protected]/thread:main, parent: ClassRealm[plexus.core, parent: null]]

... o metterlo sul classpath del plugin (I Immagino che sia w qui i descrittori predefiniti sono) ...

[INFO] Building URL from location: dependency-collection.xml

Error: java.net.MalformedURLException: no protocol: dependency-collection.xml

... o caricarlo da un URL.

Bello, ma questo in realtà dovrebbe essere documentato da qualche parte, penso. Ho appena inserito il file descrittore accanto a th epom.xml e ha funzionato. Probabilmente avrei potuto provarlo prima di cercare sul web ...

Problemi correlati