Gradle构建脚本文件依赖性

时间:2018-12-12 13:22:22

标签: gradle build.gradle intershop

作为一个完整的gradle noob,我在寻找将依赖项集成到我的构建过程中的正确方法时遇到了一点问题。

由于我不是100%熟悉正确的gradle术语,因此我将使用特定于框架的术语进行描述。
环境:Gradle-Wrapper(2.11)
InterShop-System具有多个Cartridge-Set(可发布项目)和几个Cartridge(可发布子项目->每个墨盒将创建其单独的输出结果,通常是jar文件和zip文件)。

Cartridge-Set-A
    Cartridge-a1
    Cartridge-a2
    ...
Cartridge-Set-B
    Cartrige-b1
    Cartrige-b2
...

普通的Java或项目依赖关系都没有问题。
我有一个gradle脚本,我想在几个不同墨盒的build.gradle中使用例如a1,b1,d4。

我的想法是以某种方式将我的脚本发布到nexus存储库,这将允许我将脚本指定为依赖项。 ->问题我不知道如何设置内部没有任何Java代码且不基于intershop插件的gradlew项目。有intershop插件仅可用于静态内容(模板,js等),但是这些依赖项会自动部署,在我的情况下这是不必要的,因为仅在构建过程中才需要依赖项。

简短版本:
我希望能够拨打以下行

apply from: 'path/to/file/subscript.gradle'

在我的build.gradle中有多个项目,而每个项目中没有副本。 最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

听起来您具有许多不同版本共有的通用功能。在这种情况下,编写一个实现该功能的插件,然后将该插件应用于要在其上使用的build.gradle文件是很有意义的:

class GreetingPlugin implements Plugin<Project> {
    void apply(Project project) {
        project.task('hello') {
            doLast {
                println 'Hello from the GreetingPlugin'
            }
        }
    }
}

// Apply the plugin
apply plugin: GreetingPlugin

输出:

> gradle -q hello
Hello from the GreetingPlugin

https://docs.gradle.org/current/userguide/custom_plugins.html#sec:writing_a_simple_plugin

否则,您将需要设置一个多项目构建,并在allProjects中使用通用功能关闭或完成任务

https://docs.gradle.org/current/userguide/multi_project_builds.html