多项目构建中的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...)
。
- 什么是kotlin-gradle-plugin和kotlin-js-library之间的正确版本匹配?
- 在Gradle中分割所有输出目录
- 无法运行jar文件。 (错误:无法find或加载主类co.pissarra.Mainkt)
- 库与Gradle 3.0.0-alphaX的依赖关系问题
- 什么是Kotlin中的generateStubs配置?
- Gradle,’url’不能用于(java.lang.String)
- 'com.android.tools.build:gradle:3.0.0-alpha3'和'com.android.tools.build:gradle:3.0.0-alpha1'有什么区别?
- 添加一个Fragment后,Android工作室分解了我的build.gradle文件
- 编译Android项目