我试图为嵌套的多项目结构运行./gradlew build
,但我遇到了一些问题,这些问题似乎只出现在具有测试源根的项目中。作为java和gradle的新手,我肯定我打破了不止一个惯例,但我仍然认为这是可行的。
从本质上说,所有的依赖项似乎都添加得很好,但当我有一个项目只有一个测试srcDir而依赖于另一个项目,而另一个项目有一个测试srcDir时,它就无法识别根项目中的包/符号。然而,具有常规srcDirs(不是测试)的项目似乎没有问题。
我的项目还有更多的内容,但这里是我尝试过的最简单的设置,它说明了这个问题。
qatests
/Applications
/AppGroupName
/AppBasePageObjects
/src
/AppBaseTests
/src
/BasePageObjects
/src
/BaseTests
/src
我的设置.在Qatests中的Gradle:
rootProject.name = 'QaTests'
include 'BasePageObjects'
include 'BaseTests'
include 'Applications:AppGroupName'
include 'Applications:AppGroupName:AppBasePageObjects'
include 'Applications:AppGroupName:AppBaseTests'
我的Build.Gradle在Qatests:
version '1.0-SNAPSHOT'
allprojects {
repositories {
mavenCentral()
}
}
subprojects{
if(project.name.contains("Tests")){
apply plugin: 'java'
sourceCompatibility = 1.8
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.11'
compile group: 'org.seleniumhq.selenium', name: 'selenium-java', version: '2.+'
}
if(project.name != "BaseTests")
{
println "$project.name depends on BaseTests"
dependencies {
testCompile project(':BaseTests')
}
}
sourceSets {
test {
java {
srcDir 'src'
}
}
}
}
if(project.name.contains("PageObjects")){
apply plugin: 'java'
sourceCompatibility = 1.8
dependencies {
compile group: 'org.seleniumhq.selenium', name: 'selenium-java', version: '2.+'
}
if(project.name !="BasePageObjects")
{
dependencies {
compile project(':BasePageObjects')
}
}
sourceSets {
main {
java {
srcDir 'src'
}
}
}
}
}
我将不包括BaseTest项目的build.grade,因为在gradlew构建期间,它似乎可以很好地编译,但下面是我的appbaseTests的build.gradle:
version '1.0-SNAPSHOT'
dependencies {
compile 'org.apache.commons:commons-lang3:3.4'
compile project(':Applications:AppGroupName:AppBasePageObjects')
}
这里是我在实际构建中看到的第一个错误:
error: package Tests does not exist import Tests.BaseTest;
我们非常感谢任何帮助或建议。如果你想散布一些严厉的侮辱的话,我也会接受的。谢谢你。
我相信我在阅读这里的另一个解决方案时找到了一个答案:多项目测试依赖于gradle
看来我需要使用TestCompile project(':baseTests').sourcesets.test.output
来生成命令行,并使用TestCompile project(':baseTests')
来生成根build.gradle文件中的IDE功能。这似乎只是测试项目所需要的。
以下是我的root build.gradle文件中的实际更改:
if(project.name != "BaseTests")
{
println "$project.name depends on BaseTests"
dependencies {
testCompile project(':BaseTests')
testCompile project(':BaseTests').sourceSets.test.output
}
}
我用的是Kubuntu 18.04 每当我在Eclipse中的Gradle项目中创建一个新的JUnit测试用例,并且当我单击:Test.java->Run As->JUnit Test时,这个测试文件将转到src/Test/java Gradle项目捕获 未找到JUnit测试的消息
我正在尝试使用Maven插件将我的Gradle项目转换为Maven。我遵循这个SO链接,但当我运行Gradle安装命令时,我得到了以下错误 当我执行时,它没有显示安装。在这种情况下该怎么办?
我已经为公司内测发布了我的应用程序,但无法从Play商店下载。 我已打开url“https://play.google.com/apps/testing/com.*并且被接受为一名测试人员,现在它向我展示了“你是一名测试人员”。但当我点击“从Play Store下载”链接时,它会在我的测试设备Play Store中显示“未找到项目”,并在桌面浏览器中显示“未找到请求的URL”。 应用程序处于已发布
写入消息窗口中。如何将常规输出路径添加到项目中?
我尝试使用不同层(Web,业务,数据访问,公共)的子项目创建一个带gradle的Spring启动项目。 我按照gradle官方指南的指示创建多项目构建。 这两个子项目最初都是用Spring.io. 问题 我尝试在我的其他子项目dataAccess中使用子项目的类。导入在Intellij中运行良好。但是,当我运行时,任务失败,因为找不到: 任务:数据访问:compileJava失败。。。\dataA
我在lint-gradle-api.jar中有一个错误,我在论坛上查看了其他类似的问题,但我仍然有这个问题。有人有主意吗? null 失败:生成失败,出现异常。 > 其中:构建文件“C:\users\bgbra\documents\flutter_apps\flutter_app\android\app\Build.gradle”行:25 错误:评估项目':app'时出现问题。无法解析配置“cla