您好我有2个项目,文件如下:
project1
\- build.gradle
project2
\- build.gradle
\- build.properties
project1:build.gradle
apply from: '/home/project2/build.gradle
test/test2/build.gradle'
task test1 {
println "Running task test 1"
}
test1.dependsOn test2
project2:build.gradle
task test2 {
println "Running task test 2"
Properties props = new Properties()
props.load(new FileInputStream("build.properties"))
}
当我从project1执行test1任务时,我收到以下错误:
运行任务测试2
失败:构建因异常而失败。
其中: 脚本'/home/project2/build.gradle'行:4
出了什么问题: 评估脚本时出现问题。 build.properties(没有这样的文件或目录)
尝试: 使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获得更多日志输出。
建立失败
总时间:5.779秒
当gradle使用相对路径时,它会尝试在project1目录中搜索实际存在于project2目录中的build.properties文件。 我也可以将该文件移动到project1目录中,但这是我不想做的。
我也可以在build.gradle中使用绝对路径,但这只是解决方案吗?
我想从project2:test2
任务运行project1:test1
任务,而没有在project2:build.gradle中进行太多修改,因为我在这个文件中引用了多个文件。
答案 0 :(得分:0)
您可以尝试不像现在那样应用完整的构建脚本,但可以根据project2中的任务从project1创建任务,如下所示:
test1.dependsOn ':project2:test2'
但是为此,您需要让所有这个项目都是同一根项目的子项目,并在根项目中有一个settings.gradle
文件,定义这个子项目。您可以在official documentation。
否则,您需要将属性文件移动到project1目录或使用相对路径或绝对路径,因为apply只是扩展了当前构建脚本的一些额外行为,但没有这样做,因为它是单独的项目。