我的项目结构是这样的:projectRoot +-src +-main | +-java | | +-package/java files go here | +-resources | +-config | +-files go here +-test +-java | +-package/java files go here +-resources +-config | +-files go here +-features +-files go here构建此项目时,它会生成以下输出结构:projectRoot +-out +-production | +-classes | | +-package/classes in here | +-resources | +-config | +-files in here +-test +-classes | +-package/classes in here +-resources +-config | +-files in here +-features +-files in here这一切都在预料之中。我定义了一个运行黄瓜测试的任务,它看起来像这样:task runCucumber() { doLast { javaexec { main = "cucumber.api.cli.Main" args += ['--plugin', 'pretty', '--plugin', 'html:out/reports/cucumber/', '--plugin', 'json:out/reports/cucumber/report.json', '--glue', 'com.example.mypackage.cucumber', 'classpath:features' , '--tags', 'not @ignore'] systemProperties['http.keepAlive'] = 'false' systemProperties['http.maxRedirects'] = '20' systemProperties['env'] = System.getProperty("env") systemProperties['envType'] = System.getProperty("envType") classpath = configurations.cucumber + configurations.compile + configurations.testCompile + sourceSets.main.runtimeClasspath + sourceSets.test.runtimeClasspath } }}当我执行此任务时,找不到我的类,也找不到功能。显然,这是由于未正确设置类路径。如果我使用 运行任务--info,我可以看到类路径是使用我指示的参数设置的,但是out它包含build目录而不是目录。
1 回答
暮色呼如
TA贡献1853条经验 获得超9个赞
好吧,原来问题不在于 Gradle,而在于 IntelliJ IDEA。IDEA 覆盖了标准的 gradle 路径,并将输出保存在与 gradle 预期不同的路径中。然后,当下一个 gradle 任务运行时,输出不在那里。直接使用gradle而不是IDEA编译解决了这个问题。
添加回答
举报
0/150
提交
取消