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

Java 如何从gradle中的测试源引用子项目生成的工件,java,gradle,Java,Gradle,我有一个Java项目,其结构如下: <root> | +-- src/main/java/...<my_code> | +-- src/test/java/...<my_test_code> | +-- <mock-artifact1> | | | +-- src/main/java... | +-- <mock-artifact2> | | | +-- src/main/jav

我有一个Java项目,其结构如下:

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

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


另外,为了更好地理解,我想说我正在编写一个字节码分析器,它将jar文件作为输入,问题是如何使用Gradle为它编写测试。

您必须使您的项目多模块结构类似

在根模块中添加文件: 格雷德尔酒店

include 'mock-artifact1', 'mock-artifact2'
然后,在gradle构建文件的根项目中,您可以在配置范围中添加依赖项。如果您有一个典型的带有“插件java”的java基础项目 您可以在以下行中添加依赖项:

dependencies {
    compile project(':mock-artifact1')
    compile project(':mock-artifact2')
}
或者,如果您想在测试运行时添加:

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

Gradle配置有点棘手,如果您遇到问题,请发帖子

了解有关设置Gradle多项目的更多信息: