如何从gradle中的测试源引用子项目的生成工件

时间:2016-02-19 23:20:50

标签: java gradle

我有一个具有以下结构的Java项目:

 <root>
 |
 +-- src/main/java/...<my_code>
 |    
 +-- src/test/java/...<my_test_code>
 |    
 +-- <mock-artifact1>
 |  |  
 |  +-- src/main/java...
 |
 +-- <mock-artifact2>
 |  |  
 |  +-- src/main/java...

我想从mock-artifact1和mock-artifact2构建jar-s,然后在测试的运行时使用这些jar。我应该如何设置Gradle项目的依赖项,以便在测试开始之前已经构建了这些工件? 顺便说一句,如何让gradle不要使用根项目部署这些工件(因为它们只是测试所必需的)

P.S。为了更多的理解,我会说我正在编写一个字节码分析器,它将jar文件作为输入,问题是如何使用Gradle为它编写测试。

1 个答案:

答案 0 :(得分:1)

你必须使你的项目多模块结构如。

在根模块中添加文件:   settings.gradle

include 'mock-artifact1', 'mock-artifact2'

然后,在gradle构建文件的根项目中,您可以在配置范围内添加依赖项。如果你有一个典型的java基础项目&#39;插件java&#39; 您可以添加依赖项行:

dependencies {
    compile project(':mock-artifact1')
    compile project(':mock-artifact2')
}

或者如果你想在测试运行时添加:

dependencies {
    testCompile project(':mock-artifact1')
    testCompile project(':mock-artifact2')
}

Gradle配置有点棘手,如果你发布一些问题