多项目构建中的Gradle – 路径
我有一个多项目gradle项目,具有以下目录结构:
+ project_root + module1 + src build.gradle + module2 + src build.gradle + web .. build.gradle settings.gradle
在我指定的其他事物中的module1/build.gradle
中:
compileKotlin2Js.kotlinOptions { outputFile = "web/script.js" }
这是一个特殊的Kotlin JS设置,指定编译的JS文件的输出文件路径。
现在我的问题是,当我建立整个项目( project_root/build.gradle
)文件结束在正确的目录( project_root/web
),但是当我不小心运行建立在模块单独的文件被保存在模块目录( project_root/module1/web
)。
我如何修复我的构建脚本中的路径,所以文件输出将保存在完全相同的目录,无论我运行哪个构建脚本(没有指定完整路径,我想要一个相对路径)?
我不知道什么Gradle插件需要代码示例中的路径参数,但所有常规(非第三方)Gradle插件通过Project.files(Object...)
计算路径参数,以避免在调用Gradle时的不同位置各种工作目录。
我建议使用上述方法(或其单个文件版本Project.file(Object)
)。 您甚至可以省略project
部分,因为build.gradle
文件在项目范围内执行:
compileKotlin2Js.kotlinOptions { outputFile = file('web/script.js') }
这将始终评估相对于您的build.gradle
所属的项目的项目目录的路径。 要评估与根项目的项目目录相关的文件,请使用rootProject.files(Object...)
作为相对于子项目的项目目录或生成中的任何项目的project(':path:to:project').files(Object...)
,使用project(':path:to:project').files(Object...)
。
- 无法解析:com.google.firebase:firebase-auth:11.0.2
- java.lang.RuntimeException:java.lang.RuntimeException:com.android.builder.dexing.DexArchiveMergerException:无法合并dex
- 注释处理器不工作 – 不创建文件
- Android Studio 3.0 Kotlin的变化并没有体现在构建中
- 如何覆盖gradle kotlin-dsl中的任务
- Java和Kotlin组合生成错误(重复邮编条目)
- JaCoCo Gradle插件报告每个包的0.0类覆盖率
- 如何将kotlin-js-library更新为1.1.3,就像kotlin-gradle-plugin一样?
- Holdr in Kotlin的未解决的参考