gpt4 book ai didi

java - 如何使用 test-jar 依赖项运行 Maven 编译阶段

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:40:31 25 4
gpt4 key购买 nike

我正在处理的项目由多个模块组成,是用 maven 构建的。某些模块中的测试代码依赖于其他模块中的测试代码。这些依赖项声明如下。

在依赖模块中:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>

在对前一个模块有依赖的模块中:

<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>themodulename</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>

使用此配置,maven install 阶段可以成功执行。但是尝试运行编译测试 阶段失败,因为无法解析测试 jar 文件依赖性。

查看 test-jar 目标,它似乎被配置为在 package 阶段默认运行,我认为这是问题的原因。

然后,我试图通过将第一个配置修改为:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>

查看调试日志,我可以看到目标现在是在编译 阶段执行的,还有这个:

[WARNING] JAR will be empty - no content was marked for inclusion!

我尝试将包含配置为 **/* 并确认默认的 testClassesDirectory 设置为正确的,但我仍然收到相同的警告。

在运行compile 阶段后,我可以看到test-classes 文件夹不存在,这看起来很正常,但即使在运行test 阶段后它存在,并且它包含文件,我仍然收到“JAR 将为空”警告。

有没有人知道如何修复此配置,以便我可以成功运行编译测试 阶段?

最佳答案

我认为这些插件配置适合您。

只需在资源准备和编译时将skip覆盖为false即可。

  <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>default-testResources</id>
<configuration>
<skip>false</skip>
</configuration>
<phase>process-test-resources</phase>
<goals>
<goal>testResources</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<executions>
<execution>
<id>default-testCompile</id>
<configuration>
<skip>false</skip>
</configuration>
<phase>test-compile</phase>
<goals>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<configuration>
<skip>false</skip>
</configuration>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>

关于java - 如何使用 test-jar 依赖项运行 Maven 编译阶段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12104668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com