2011-08-19 9 views
6

Mam projekt Maven2 z dwoma submodułów, określonymi tak:Dodanie apletu w modułem do pliku WAR w Maven

parentproject 
|---war-file-project 
|---applet-project 

W POMs w każdej z nich odpowiedni moduł nadrzędny relacje. Model applet-project zawiera prosty aplet i jest skonfigurowany z pakietem JAR. war-file-project zawiera prosty projekt pliku WAR i jest skonfigurowany z pakietem WAR.

Kiedy buduję, chciałbym się upewnić, że plik WAR zawiera wynikowy plik JAR z katalogu applet-project w katalogu /applets.

Jak to zrobić?

Odpowiedz

7

Aby to osiągnąć można po prostu użyć maven zależność plugin do kopiowania zależność do odpowiedniej lokalizacji.

Utworzono complete example, którego można użyć jako szablonu.

0

Musisz zdefiniować zależność w projekcie wojennym na swój aplet-projekt.

<dependency> 
    <groupId>${project.groupId}</groupId> 
    <artifactId>applet-project</artifactId> 
    <version>${project.version}</version> 
</dependency> 
+0

To spowoduje wyświetlenie pliku JAR dla mojego apletu w WEB-INF/lib, co nie jest tym, czego chcę. Chciałbym go w katalogu głównym pliku WAR, aby mógł zostać pobrany przez użytkownika i uruchomiony w jego przeglądarce. – Jonathan

2

Dzięki khmarbaise za doskonały szablon!

Ja również może chcieć, aby dostosować go z następującymi zmianami:

  • dodać <scope>provided</scope> do „dodatkowego” zależność w czasie wojny/pom.xml - wtedy supplemental.jar nie będą powielane w/WEB-INF/lib
  • dodać <stripVersion>true</stripVersion> do przykładowej konfiguracji Maven zależność-plugin - wtedy apletu będzie 'supplemental.jar' zamiast coś jak 'supplemenal-0.1.0-SNAPSHOT.jar'
  • zmian ${project.artifactId}-${project.version} w <outputDirectory> na bardziej niezawodny ${project.build.finalName}