Je veux distribuer la guerre de mon application web générée avec Maven avec le code source à l'intérieur. Comment faire ça avec Maven?Comment générer un WAR avec le code source dans Maven?
10
A
Répondre
14
Il est possible configurer le plugin maven-guerre pour inclure le répertoire source comme il était une ressource web:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>${build.sourceDirectory}</directory>
<targetPath>sources</targetPath>
</resource>
</webResources>
</configuration>
</plugin>
</plugins>
</build>
Les sources java seront inclus dans un répertoire sources
dans la guerre. Bien sûr, vous devez adapter le répertoire de ressources à votre propre mise en page Maven.
0
En général, je pense que vous aller dans cette voie: (cela ne comprend pas les fichiers source, mais les fournit sous forme de fichiers séparés)
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
2
Si vous voulez que les fichiers source dans le même répertoire que la classe les fichiers que vous utilisez:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>${build.sourceDirectory}</directory>
<targetPath>WEB-INF/classes</targetPath>
</resource>
</webResources>
</configuration>
</plugin>
0
A votre projet de pom.xml
de guerre:
<build>
...
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<attachClasses>true</attachClasses>
<classesClassifier>classes</classesClassifier>
</configuration>
</plugin>
...
</plugins>
</pluginManagement>
</build>
en les projets que vous voulez faire l'utilisent:
<dependency>
<groupId>my-war-group</groupId>
<artifactId>my-war-artifact-id</artifactId>
<version>my-war-version</version>
<classifier>classes</classifier> <!-- THIS IS THE IMPORTANT LINE! -->
</dependency>