使用Gradle-Artifactory插件发布子项目

me

我有以下多项目Gradle构建:

myapp/
    myapp-client/
        build.gradle
        src/** (omitted for brevity)
    myapp-shared/
        build.gradle
        src/** (omitted for brevity)
    myapp-server
        build.gradle
        src/** (omitted for brevity)
    build.gradle
    settings.gradle

其中myapp/build.gradle的样子:

subprojects {
    apply plugin: 'groovy'
    sourceCompatibility = '1.7'
    targetCompatibility = '1.7'
    [compileJava, compileTestJava]*.options*.encoding = 'UTF-8'

    repositories {
        mavenCentral()
        maven {
            // My local/private Artifactory
            url "http://localhost:8081/artifactory/myapp-snapshots"
        }
    }

    dependencies {
        compile (
            'org.codehaus.groovy:groovy-all:2.3.7'
        )
    }
}

当前三个子项目Gradle文件中的每个文件都很简单:

dependencies {
    compile (
        'org.apache.commons:commons-lang3:3.3.2'
    )
}

这是我要实现的目标:

  • gradle clean build -Pversion=0.1.5从父myapp目录运行时,我希望所有三个子项目都使用0.1.5版本构建。因此myapp-client-0.1.5.jarmyapp-shared-0.1.5.jarmyapp-server-0.1.5.jar目前,我的构建已经做到了,但是...
  • 如果客户端和共享JAR构建成功,我也希望将它们发布到我的私人Artifactory存储库中。(我不希望发布服务器JAR)。

对于将Gradle构建的JAR发布到Artifactory而言,我能够找到和测试/确认的最紧凑的代码是:

buildscript {
    repositories {
        maven {
            url 'http://localhost:8081/artifactory/plugins-release'
            credentials {
                username = "admin"
                password = "12345"
            }
            name = "maven-main-cache"
        }
    }
    dependencies {
        classpath "org.jfrog.buildinfo:build-info-extractor-gradle:3.0.1"
    }
}

apply plugin: 'maven-publish'
apply plugin: "com.jfrog.artifactory"

repositories {
    add buildscript.repositories.getByName("maven-main-cache")
    maven {
        url "http://localhost:8081/artifactory/myapp-snapshots"
    }
}

artifactory {
    contextUrl = "http://localhost:8081/artifactory"
    publish {
        repository {
            repoKey = 'myapp-snapshots'
            username = "admin"
            password = "12345"
            maven = true
        }
        defaults {
            publications ('mavenJava')
        }
    }
}

publishing {
    publications {
        mavenJava(MavenPublication) {
            from components.java
        }
    }
}

当我在测试build.gradle项目中使用此代码段并运行时gradle artifactoryPublish,它将正确地将我的JAR发布到Artifactory。

我的问题:如何将此代码段添加到我的项目中,以便gradle clean build从父目录运行成功后,会产生要发布到Artifactory的客户端和共享JAR?

尽管不理想,但如果不可能一次完成所有这些工作,我将愿意将出版单独进行第二步。有任何想法吗?

巴鲁

使用artifactory插件是正确的方法。您需要使用将其应用到allprojects顶级项目并在其上禁用部署artifactoryPublish.skip=true您可以在此处找到与您的项目非常相似的项目的完整示例

默认情况下build不依赖artifactoryPublish,因此您需要运行gradle build artifactoryPublish以上传jar。原因是您可能要运行大量构建,直到您决定上传某些内容。您可以通过配置建立的依赖build将取决于artifactoryPublish

build(dependsOn: 'artifactoryPublish')

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Gradle子项目中使用Gradle Artifactory插件

来自分类Dev

如何在Gradle子项目中使用Gradle Artifactory插件

来自分类Dev

在 Gradle Release 插件的 buildTasks 中使用子项目任务

来自分类Dev

Gradle Kotlin DSL:子项目和插件的问题

来自分类Dev

无法使Gradle签名插件与子项目一起使用

来自分类Dev

Gradle-构建子项目子项目

来自分类Dev

Gradle插件可以修改多模块项目中的子项目列表吗?

来自分类Dev

Gradle在主项目中排除特定子项目的插件

来自分类Dev

Flutter插件Gradle子项目未由外部应用程序项目解析

来自分类Dev

如何使用drifferent gradle多项目的子项目

来自分类Dev

Gradle Artifactory插件-如何从项目中的多个模块发布工件?

来自分类Dev

仅在特定子项目上运行Gradle ShadowJar插件

来自分类Dev

未使用configureondemand = true调用Gradle子项目配置

来自分类Dev

Gradle-递归子项目

来自分类Dev

Gradle:复制子项目资源

来自分类Dev

在子项目上执行gradle任务

来自分类Dev

Gradle获取子项目的版本

来自分类Dev

CloudFunction作为Gradle子项目

来自分类Dev

Gradle子项目对共享代码的依赖

来自分类Dev

Gradle获取子项目的版本

来自分类Dev

子项目之间的 Gradle 依赖

来自分类Dev

Corda 模板 kotlin gradle 子项目

来自分类Dev

当子项目是当前目录时,为什么我的gradle子项目没有配置为子项目?

来自分类Dev

Gradle项目,其中包括maven项目作为子项目

来自分类Dev

如何使用Gradle Kotlin DSL为所有Gradle子项目定义变量

来自分类Dev

Gradle发行插件:将子项目中的文件添加到单独的文件夹中

来自分类Dev

Gradle子项目不会依赖于其他子项目进行编译

来自分类Dev

使用Play!Framework 2.2子项目

来自分类Dev

使用Play!Framework 2.2子项目

Related 相关文章

  1. 1

    如何在Gradle子项目中使用Gradle Artifactory插件

  2. 2

    如何在Gradle子项目中使用Gradle Artifactory插件

  3. 3

    在 Gradle Release 插件的 buildTasks 中使用子项目任务

  4. 4

    Gradle Kotlin DSL:子项目和插件的问题

  5. 5

    无法使Gradle签名插件与子项目一起使用

  6. 6

    Gradle-构建子项目子项目

  7. 7

    Gradle插件可以修改多模块项目中的子项目列表吗?

  8. 8

    Gradle在主项目中排除特定子项目的插件

  9. 9

    Flutter插件Gradle子项目未由外部应用程序项目解析

  10. 10

    如何使用drifferent gradle多项目的子项目

  11. 11

    Gradle Artifactory插件-如何从项目中的多个模块发布工件?

  12. 12

    仅在特定子项目上运行Gradle ShadowJar插件

  13. 13

    未使用configureondemand = true调用Gradle子项目配置

  14. 14

    Gradle-递归子项目

  15. 15

    Gradle:复制子项目资源

  16. 16

    在子项目上执行gradle任务

  17. 17

    Gradle获取子项目的版本

  18. 18

    CloudFunction作为Gradle子项目

  19. 19

    Gradle子项目对共享代码的依赖

  20. 20

    Gradle获取子项目的版本

  21. 21

    子项目之间的 Gradle 依赖

  22. 22

    Corda 模板 kotlin gradle 子项目

  23. 23

    当子项目是当前目录时,为什么我的gradle子项目没有配置为子项目?

  24. 24

    Gradle项目,其中包括maven项目作为子项目

  25. 25

    如何使用Gradle Kotlin DSL为所有Gradle子项目定义变量

  26. 26

    Gradle发行插件:将子项目中的文件添加到单独的文件夹中

  27. 27

    Gradle子项目不会依赖于其他子项目进行编译

  28. 28

    使用Play!Framework 2.2子项目

  29. 29

    使用Play!Framework 2.2子项目

热门标签

归档