maven - 在使用 maven 插件生成的 jar 中包含 test-classes 文件夹
问题描述
作为 src/test/java 包的一部分,我编写了一些通用代码作为 maven 项目。我需要将此代码导出为 JAR,以便可以在其他项目中将其作为依赖项重用。当我在 Eclipse 中使用 Export jar 选项手动创建 jar 时,jar 是使用目标目录(及其内容)创建的。当其他项目将此 jar 用作依赖项时,这可以正常工作
但是,使用 maven 插件生成的 jar 没有目标和其他文件夹。我使用 maven-jar-plugin 尝试了以下选项,但没有运气。
选项1:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.0.1</version>
<configuration>
**<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>${project.basedir}/target/test-classes</classpathPrefix>
</manifest>
</archive>**
</configuration>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
选项2:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.2</version>
<configuration>
**<outputDirectory>${project.basedir}/target/test-classes</outputDirectory>**
</configuration>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
下面是生成的 jar 的快照。
日食选项:
Maven 测试罐插件:
解决方案
中的类src/test/java
不打算在其他 jar 中重用。它们纯粹是为了在构建期间运行测试(那个特定的 jar)。如果您需要通用类在不同情况下进行测试,请使用这些所需的类 (in src/main/java
) 构建一个新 jar,并在您的项目中将其用作测试依赖项 ( <scope>test</scope>
)。
推荐阅读
- c++ - 未使用的函数参数可以优化掉吗?
- javascript - ReactJS - 如何区分我要显示的选择属性中的哪个选项?
- axon - 管理与聚合中外部组件的连接
- c - C语言中的uintptr_t和intptr_t
- c# - 如何使用 AJAX 发布对象并使用 ASP.NET Core MVC 控制器获取?
- vb.net - TEXT 数据类型在 Ms.Access 中变成 MEMO
- python - CSS未链接到Flask webapp中的HTML
- android - 三星健康 SDK 合作伙伴应用程序计划注册
- node.js - 无法使用 nodejs/axios 上传大文件
- angular - 将 FileReader 结果保存到数组时出现问题