【问题标题】:Gradle build-script file dependencyGradle 构建脚本文件依赖
【发布时间】:2018-12-12 13:22:22
【问题描述】:

作为一个完整的 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 中,每个项目中都没有副本。 最好的方法是什么。

【问题讨论】:

标签: gradle build.gradle intershop


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-27
    • 1970-01-01
    • 1970-01-01
    • 2012-02-27
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 2013-01-30
    相关资源
    最近更新 更多