首页 文章

Gradle项目共享artifactory插件依赖项

提问于
浏览
0

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

有没有明确的方法在gradle 2.12中这样做?项目“核心”需要存在,因为如果依赖项'foo'的版本发布更改我想更新'core'而不是'bar',因此避免重新部署'bar'

Project 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'中使用artifactory插件:

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

1 回答

  • 0

    从Gradle 3.0开始,可以使用improved plugin DSL . 文档中的示例如下所示:

    plugins {
        id 'my.special.plugin' version '1.0' apply false
    }
    
    subprojects {
        if (someCondition) {
            apply plugin 'my.special.plugin'
        }
    }
    

    因此,您的情况应该是:

    core

    plugins {
      id "com.jfrog.artifactory" version "4.4.0"
    }
    
    subprojects {
        apply plugin "com.jfrog.artifactory"
    }
    

相关问题