gpt4 book ai didi

maven-2 - 在maven项目之间共享测试资源

转载 作者:行者123 更新时间:2023-12-03 06:53:44 25 4
gpt4 key购买 nike

有一个明确的解决方案,可以使用 maven-jar-plugin 插件的 test-jar 目标在 Maven 项目之间共享通用测试代码(请参阅 here )。

我需要对测试资源执行类似的操作,特别是,我希望在测试期间项目 A 的测试资源在项目 B 的类路径中可用。

对于项目A需要声明:

<!-- Package and attach test resources to the list of artifacts: -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<jar destfile="${project.build.directory}/test-resources.jar">
<fileset dir="${project.basedir}/test-resources" />
</jar>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>attach-artifact</goal>
</goals>
<configuration>
<artifacts>
<artifact>
<file>${project.build.directory}/test-resources.jar</file>
<type>jar</type>
<classifier>test-resources</classifier>
</artifact>
</artifacts>
</configuration>
</execution>
</executions>
</plugin>

在项目 B 中,这将是正常的依赖关系:

<dependency>
<groupId>myproject.groupId</groupId>
<artifactId>myartifact</artifactId>
<version>1.0-SNAPSHOT</version>
<classifier>test-resources</classifier>
<scope>test</scope>
</dependency>

问题:它应该在所有情况下都有效吗?是否可以在没有 maven-antrun-plugin 的情况下打包资源(使用更多“轻量级”插件)?

最佳答案

只需使用 jar:test-jar并将生成的 JAR 声明为依赖项(有关更多详细信息,请参阅 this guide)。虽然我不明白此 jar 中包含资源 类的问题,但您始终可以排除所有 .class 文件:

<project>
<build>
<plugins>
<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>
<configuration>
<excludes>
<exclude>**/*.class</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>

并使用它:

<project>
...
<dependencies>
<dependency>
<groupId>com.myco.app</groupId>
<artifactId>foo</artifactId>
<version>1.0-SNAPSHOT</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
</dependencies>
...
</project>

关于maven-2 - 在maven项目之间共享测试资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2247199/

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