2009-06-09 12 views
5

Witam Próbuję utworzyć niestandardowy deskryptor odniesienia w moim pom pom, który pakuje wszystkie zależności ze źródłami. Dostałem assembly.xml przybita całkiem dobrze, ale kiedy dodać go do mojego podstawowego zespołu POM: montaż nie tak:Montaż Maven: montaż

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

Ale montaż: wolny wydaje się działać poprawnie. Próbowałem również dodać ref do słoika z zależnością w POM, ale nie jestem pewien, czy to jest nawet możliwe.

Oto co mam w mojej bazy 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> 

Czy ktoś tam wiem do kogo się uzyskać to do pracy, kiedy powoływać mvn montaż: montaż z wiersza poleceń?

Z góry dziękuję.

+0

Co robi uruchomienie mvn -X? –

Odpowiedz

7

Nie jestem pewien, ale mam podejrzenie. Użytkownik definiuje złożenie: pojedyncze jako część fazy pakietu i identyfikuje deskryptor w elemencie wykonawczym. Może to oznaczać, że wtyczka nie wie, gdzie szukać deskryptora podczas uruchamiania zestawu: montaż. Spróbuj skopiować element <configuration> na zewnątrz elementu <executions>.

Jeden z moich poms wygląda tak, i używam montaż: montaż cały czas:

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

Uwaga src/main/config nie jest standardową Maven ścieżki, ale nie zdefiniowano żadnego specjalnego obchodzenia się z nim .

+1

To się udało! Wielkie dzięki :) – javamonkey79

+0

Powodem, dla którego element znajduje się wewnątrz elementu , jest to, że strona wtyczki tak to robi. Zobacz: http://maven.apache.org/plugins/maven-assembly-plugin/examples/sharing-descriptors.html. Zastanawiam się, że strona jest nieaktualna. – aberrant80

0

Gdzie masz plik assembly.xml? Katalog roboczy Mavena jest katalogiem modułu (takiego, który zawiera pom.xml). Jeśli plik assembly.xml nie znajduje się w tym samym katalogu, co plik pom.xml, należy podać ścieżkę

+0

assembly.xml znajduje się w katalogu src/main/resources/assembly: mycompany.jar.assembly jar-with-dependencies-and-sources-test jar – javamonkey79

Powiązane problemy