有关如何使用此插件的一些简短示例。如果您想使用高级配置,您应该查看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>
如需完整文档,请单击此处。