【问题标题】:Gradle maven-publish : task to publish only oneGradle maven-publish :仅发布一个的任务
【发布时间】:2017-11-01 08:46:01
【问题描述】:

我有一个 Java 项目,它使用以下代码构建和发布许多 jar(a.jar、b.jar、...):

publishing {
    publications {
        a (MavenPublication) {
            artifactId 'a'
            artifact aJar
        }
        b (MavenPublication) {
            artifactId 'a'
            artifact aJar
        }
    }
}

repositories { ...

我还定义了一个 z.jar,我想要一个特殊的任务来发布它,我不想为构建和发布 (publishToMaven*) 任务构建/发布它。

我该如何定义这种任务?

我尝试了类似的方法和其他变体,但无法编译 gradle:

task zPublish(type: PublishToMavenRepository) {
    publication = new MavenPublication() {
        artifactId 'z'
        artifact zJar
    }
}

我搜索 ma​​ven-publish 插件的in the source 没有成功。

谢谢你的好主意。

【问题讨论】:

    标签: java maven gradle maven-publish


    【解决方案1】:

    尝试创建单独的任务

    publishing {
        publications {
            a (MavenPublication) {
                artifactId 'a'
                artifact aJar
            }
            b (MavenPublication) {
                artifactId 'b'
                artifact bJar
            }
            z(MavenPublication) {
                artifact zJar
            }
        }
    }
    
    task zPublish() {
        dependsOn('publishZPublicationToMavenRepository')
        description('Publishes Z')
    }
    
    task otherPublish() {
        dependsOn('publishAPublicationToMavenRepository', 'publishBPublicationToMavenRepository')
        description('Publishes A and B')
    }
    

    【讨论】:

      【解决方案2】:

      默认情况下,Gradle 插件 maven-publish 为每个发布和存储库创建一个常规任务,因此如果您定义了您的发布,那么您可以使用该常规任务发布它。

      例如,如果您定义了z 发布,则可以使用任务publishZPublicationToMavenRepository。

      【讨论】:

      • 但是当我调用“publish”、“publishToMavenLocal”、“publishToMavenRepository”时,我想排除 publishZPublicationToMavenRepository。
      • 然后你可以运行publish -X publushZPublicationToMavenRepository。 -X 将从执行计划中排除给定任务。
      • 我的团队使用 Eclipse gradle 插件,所以最简单的方法是双击一个不带参数的任务。我目前的解决方法是默认禁用 publishZPublicationToMavenRepository 并在需要时手动激活它。
      • 好吧,Gradle 提供了一些方法,提供 OOTB 检查相关文档页面 docs.gradle.org/current/userguide/…
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-06
      • 2016-04-04
      • 1970-01-01
      • 1970-01-01
      • 2021-03-31
      相关资源
      最近更新 更多