java - 用于测试目的的 Maven 系统范围

标签 java maven jenkins gradle

我写了一个小框架来测试微服务。现在我将我的契约(Contract)打包到一个 jar 中,用于测试我的框架,但我不想将它们部署到我们的关系中。所以我的 pom 包含

<dependency>
    <groupId>mycompany.testframework</groupId>
    <artifactId>test.dummy-contract</artifactId>
    <version>1.0</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/src/test/resources/contract-dummy.jar</systemPath>
</dependency>

现在,如果我想在另一个项目中使用该框架(使用 gradle),我会收到此错误消息:

Processing of C:\Users\dam\.gradle\caches\modules-2\files-2.1\mycompany.testframework\TestFramework\0.0.1-SNAPSHOT\5859a002118d47b4237425d25dfc79ea1d7eb829\TestFramework-0.0.1-SNAPSHOT.pom failed:
'dependencies.dependency.systemPath' for mycompany:test.dummy-contract:jar must specify an absolute path but is ${project.basedir}/src/test/resources/contract-dummy.jar in mycompany.testframework:TestFramework:0.0.1-SNAPSHOT

我的 jenkins 测试和构建需要依赖项,但“交付”不需要依赖项。有什么建议吗?

最佳答案

我通过将依赖项添加到仅用于测试框架和 jenkins 的配置文件中解决了这个问题

<profiles>
    <profile>
        <id>test-dummy</id>
        <activation>
            <file>
                <exists>${project.basedir}/src/test/resources/contract-dummy.jar</exists>
            </file>
        </activation>
        <dependencies>
            <dependency>
                <groupId>de.company.testframework</groupId>
                <artifactId>test.dummy-contract</artifactId>
                <version>1.0</version>
                <scope>system</scope>
                <systemPath>${project.basedir}/src/test/resources/contract-dummy.jar</systemPath>

                <optional>true</optional>
            </dependency>
        </dependencies>
    </profile>
</profiles>

关于java - 用于测试目的的 Maven 系统范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30998756/

相关文章:

java - 如何在 Java 中使用 Ruby 和 Maven?

git pull 到一个分离的头

docker - 停留在 'sh' 阶段,然后 Process 显然从未在/home/jenkins/jenkins/workspace/中启动

java - 什么是非法反射访问?

java - 用于从 firebase 数据库检索数据的 valueEventListener 的更好替代方案是什么?

maven - 从 maven ${project.basedir} 获取最后一个文件夹的名称

eclipse - 在 Eclipse JUnit View 中显示 Jenkins 测试结果

java - 如何将 JScrollPane 添加到此 JTextArea?

java - 未找到 Log4J NTEventLogAppender DLL

java - 如何为多个模块创建公共(public)资源文件夹?