Tôi muốn phân phối chiến tranh ứng dụng web của tôi được tạo bằng Maven với mã nguồn bên trong nó. Làm thế nào để làm điều đó với Maven?Cách tạo WAR với mã nguồn trong Maven?
10
A
Trả lời
14
Có thể cấu hình các maven-chiến-plugin để bao gồm các thư mục nguồn như nó đã được một nguồn tài nguyên 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>
Các nguồn java sẽ được đưa vào một thư mục sources
trong chiến tranh. Tất nhiên bạn nên thích ứng với thư mục tài nguyên để bố trí maven của riêng bạn.
0
Thường thì tôi nghĩ bạn sẽ đi theo cách này: (điều này sẽ không bao gồm các tập tin nguồn, nhưng cung cấp cho họ từng file riêng lẻ)
<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
Nếu bạn muốn các tập tin nguồn trong cùng thư mục với lớp dữ liệu mà bạn sẽ sử dụng:
<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
Tại dự án chiến tranh của pom.xml
của bạn:
<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>
Trong các dự án bạn muốn sử dụng:
<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>