首页 文章

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

提问于
浏览
1

我有一个具有以下结构的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不要使用根项目部署这些工件(因为它们只是测试所必需的)

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

1 回答

  • 1

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

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

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

    然后在gradle构建文件的根项目中,您可以在配置范围内添加依赖项 . 如果你有'plugin java'的典型java基础项目,你可以添加依赖项行:

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

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

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

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

相关问题