2

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

由于我不是 100% 熟悉正确的 gradle 术语,因此我将使用特定于框架的术语和描述。
环境:Gradle-Wrapper (2.11)
InterShop-System with multiple Cartridge-Sets (publishable projects) with multiple Cartridges (publishable subprojects -> 每个弹药筒创建其独立的输出结果,通常是一个 jar 文件和一个 zip 文件)。

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

正常的java或者项目依赖都没有问题。
我有一个 gradle 脚本,我想在几个不同墨盒的 build.gradle 中使用它,例如 a1、b1、d4。

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

简短版:
我希望能够调用以下行

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

在我的几个项目中的 build.gradle 中,每个项目中都没有副本。什么是最好的方法来做到这一点。

4

1 回答 1

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

于 2018-12-12T15:58:51.797 回答