2009-06-09 23 views
5

Merhaba Tüm bağımlılıkları kaynaklarla paketleyen ana pompamda özel bir tanımlayıcı ref oluşturmaya çalışıyorum. Ben assembly.xml oldukça iyi çivilenmiş var, ama benim temel POM montaj eklediğinizde:Maven aksamı: montaj

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

Ama montaj: Montaj şöyle başarısız tek düzgün çalışması gibi görünüyor. Kavga-bağımlı-bağımlılıkları ref de POM'a eklemeyi denedim, ama bunun mümkün olup olmadığından emin değilim.

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

herkes orada ben mvn montaj çağırmak zaman kim bu işe almak için biliyor mu: montaj komut satırından İşte

benim taban pom içinde ne var?

Şimdiden teşekkürler.

+0

Çalışan mvn -X ne üretir? –

cevap

7

yolunu belirtmelisiniz, emin değilim, ama bir şüphem var. Montajı tanımlarsınız: Paket aşamasının bir parçası olarak bekle ve yürütme öğesindeki tanımlayıcıyı tanımla. Bu, eklentiyi çalıştırdığınızda eklentinin nereye bakacağını bilmediği anlamına gelebilir: assembly. <configuration> öğenizi <executions> öğesinin dışına kopyalamayı deneyin. Benim poms

biri bu gibi görünüyor ve ben montaj kullanın: montaj her zaman: src/main/config bir Maven standart yolu değil

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

Not, ama bunun herhangi özel işlem tanımlamadınız .

+1

Bunu yaptı! Çok teşekkürler :) – javamonkey79

+0

elemanının öğesinin içinde olmasının nedeni, eklentinin sayfasının bunu yapmasıdır. Bakınız: http://maven.apache.org/plugins/maven-assembly-plugin/examples/sharing-descriptors.html. Bu sayfanın modası geçmiş olduğunu merak ediyorum. – aberrant80

0

Assembly.xml'iniz nerede? Maven'in çalışma dizini, bir modülün (pom.xml'yi içeren) dizinidir. Assembly.xml dosyanız bu pom.xml ile aynı dizinde değilse,

+0

assembly.xml, src/main/resources/derlemeleri içerigindedir: mycompany.jar.assembly jar-with -lıklar-ve-kaynaklar-test kavanoz – javamonkey79