2017-09-11 160 views
0

我有以下目录结构的多项目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" 
} 

这是一个指定编译的JS文件的输出文件路径的特殊Kotlin JS设置。

现在我的问题是,当我编译整个项目(project_root/build.gradle)的文件在正确的目录(project_root/web)结束了,但是当我不小心运行建立单独的模块上的文件被保存在模块目录(project_root/module1/web )。

如何在我的构建脚本中修复路径,因此无论我运行哪个构建脚本(不指定完整路径,我想要相对路径),文件输出都将保存在完全相同的目录中?

回答

1

我不知道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...)