IntelliJ / Gradle-复合构建项目-如何从不同的模块导入?

时间:2019-04-30 10:31:51

标签: java intellij-idea

我是Java的新手,目前正在尝试在IntelliJ中构建一个包含两个模块的黄瓜/硒项目:一个包含页面定义的库项目,一个包含与这些黄瓜说话的黄瓜功能和步骤定义的测试项目。页面定义。想法是页面定义是共享资源,并且测试特定于不同的项目/组。这两个模块都在父项目下处于同一级别。构建使用的是Gradle,父级的settings.gradle文件如下所示:

rootProject.name = 'composite-builds'
includeBuild 'libraryproject'
includeBuild 'testproject'

在父项目上使用Gradle includeBuild可以正常工作,并且整个项目都可以导入。但是我在测试项目的import语句中使用库项目并没有运气。它始终向我返回以下错误:java: package libraryproject.pageFactory.examplePages does not exist,显然看不到库模块。

为了使测试项目能够识别库项目,我需要做什么/添加什么?我确实尝试在测试项目的includeBuild中添加settings.gradle语句,但这没什么区别。

可以找到here

更新:我无法从库项目中看到模块的真正原因是它们保存在测试文件夹中,而不是主要文件夹中。

1 个答案:

答案 0 :(得分:3)

转到您的 build.gradle 文件

代替 includeBuild ,使用依赖项{compile {project(':libraryproject')}}

在libraryproject的根项目中(在您的情况下是复合构建)。在 settings.gradle

中将 includeBuild 更改为 include
rootProject.name = 'composite-builds'
include ':libraryproject'
include ':testproject'

如果在同一根目录中:

dependencies {
    compile(
        project(':libraryproject')
    )
}

子文件夹:

dependencies {
    compile(
        project(':myFolder1:myFolder2:libraryproject')
    )
}