有关如何使用此插件的一些简短示例。如果您想使用高级配置,您应该查看Maven Archiver的文档。
要处理存档此版本的 Maven JAR 插件,请使用Maven Archiver 2.5。
注意:最初,这个插件也是用来签署 JAR 的。从 2.3 版本开始,不再支持相应的目标,建议用户改用专用的Maven Jarsigner 插件。
如果您的项目的打包设置为“jar”,则只要通过“打包”阶段,就会执行此插件。您可以使用以下命令执行它:
mvn package
在项目的目标目录中,您将能够看到生成的 jar 文件。
通过在pom.xml中添加<includes> / <include>或<excludes> / <exclude>来指定要包含或排除的文件集模式列表。
<project>
...
<build>
<plugins>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<includes>
<include>**/service/*</include>
</includes>
</configuration>
</plugin>
...
</plugins>
</build>
...
</project>请注意,模式需要相对于为插件的classesDirectory参数指定的路径。
通过添加<includes> / <include>或<excludes> / <exclude>指定要包含或排除的文件集模式列表,并在pom.xml中添加分类器。
注意: jar-plugin 必须在新的执行中定义,否则它将替换 jar-plugin 的默认使用,而不是添加第二个工件。分类器还需要创建多个工件。
<project>
...
<build>
<plugins>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>client</classifier>
<includes>
<include>**/service/*</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
...
</plugins>
</build>
...
</project>当您想要创建一个包含测试类的 jar 时,您可能想要重用这些类。有两种方法可以解决这个问题:
您可以生成一个包含您的测试类和资源的 jar。
<project>
...
<build>
<plugins>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
...
</plugins>
</build>
...
</project>要在其他项目中重用此工件,您必须使用分类器 test-jar 声明此依赖项:
<project>
...
<dependencies>
<dependency>
<groupId>groupId</groupId>
<artifactId>artifactId</artifactId>
<type>test-jar</type>
<version>version</version>
<scope>test</scope>
</dependency>
</dependencies>
...
</project>注意:此解决方案的缺点是您不会自动获得传递测试范围的依赖项。Maven 仅解决编译时依赖项,因此您必须手动添加所有其他必需的测试范围依赖项。
为了让 Maven 解决所有test范围的传递依赖项,您应该创建一个单独的项目。
<project>
<groupId>groupId</groupId>
<artifactId>artifactId-tests</artifactId>
<version>version</version>
...
</project>现在你有了可重用的测试类,你可以像以前那样引用它:
<project>
...
<dependencies>
<dependency>
<groupId>groupId</groupId>
<artifactId>artifactId-tests</artifactId>
<version>version</version>
<scope>test</scope>
</dependency>
</dependencies>
...
</project>如需完整文档,请单击此处。