繁体   English   中英

Gradle项目共享人工插件依赖

[英]Gradle projects sharing artifactory plugin dependency

我有三个gradle项目:“ foo”,“ bar”和“ core”。 “ foo”和“ bar”需要使用人工插件:“ foo”发布“ bar”所需的依赖项。 人工插件依赖项在'core'中定义,我需要项目'foo'和'bar'才能使用它。

在gradle 2.12中是否有明确的方法来做到这一点? 项目“核心”必须存在,因为如果依赖项“ foo”的版本发布更改,我想更新“核心”而不是“ bar”,从而避免了“ bar”的重新部署

项目foo-build.gradle:

group 'foo'
version '1.0-SNAPSHOT'

apply from: "/path/to/core/artifactory-war.gradle"

apply plugin: 'com.jfrog.artifactory'

项目栏-build.gradle:

 group 'foo'
    version '1.0-SNAPSHOT'

    apply from: "/path/to/core/artifactory.gradle"

    apply plugin: 'com.jfrog.artifactory'

项目核心-artifactory-war.gradle:

apply from: "/path/to/core/artifactory.gradle"

apply plugin: 'com.jfrog.artifactory'

publishing {
    //...
}

项目核心-artifactory.gradle:

group 'core'
version '1.0-SNAPSHOT'

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4.4.0"
    }
}

apply plugin: org.jfrog.gradle.plugin.artifactory.ArtifactoryPlugin

artifactory {
    // ...
}

到目前为止,我无法在项目“ foo”中使用人工插件:

Plugin with id 'com.jfrog.artifactory' not found.

从Gradle 3.0开始,可以使用改进的插件DSL来实现 文档中的示例如下所示:

plugins {
    id 'my.special.plugin' version '1.0' apply false
}

subprojects {
    if (someCondition) {
        apply plugin 'my.special.plugin'
    }
}

因此,您的情况应为:

核心

plugins {
  id "com.jfrog.artifactory" version "4.4.0"
}

subprojects {
    apply plugin "com.jfrog.artifactory"
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM