gradle 发布未拾取 Artifactory : "Task has not declared any outputs despite executing actions."

标签 gradle artifactory publish tar

我正在将一个 java 项目从 gradle 2.x 迁移到 5.3.1。

最后一个问题是没有任何 Artifactory (在我们的例子中是 tar)被发布到artifactory。

build.gradle中的配置是

subprojects {
    apply plugin: "com.jfrog.artifactory"
    project.ext {
        artifactoryConfig = new File(project.gradle.gradleUserHomeDir, "artifactory.gradle")
    }
    if (artifactoryConfig.exists()) {
        apply plugin: 'maven'
        apply from: artifactoryConfig
    }
    sourceCompatibility = 1.8
    repositories {
        mavenCentral()
        maven { url $OUR_ARTIFACTORY }
    }
    publishing {
        publications {
            mavenJava(MavenPublication) {
                from components.java
            }
        }
    }
}
artifactory {
    publish {
        contextUrl = "${artifactoryBaseUrl}"
        repository {
            repoKey = "libs-release-local"
            username = "${artifactoryUsername}"
            password = "${artifactoryPassword}"
        }
    }
    resolve {
        repoKey = 'repos'
    }
}

并在模块中

task('dist', type: Tar) {
    dependsOn('jar')
    archiveName "$MODULE-${version}.${extension}"
...
}
publishing {
    publications {
        mavenJava(MavenPublication)
                {
                    artifact dist {
                    }
                }
    }
}
configurations.archives.artifacts.clear()
artifacts {
    archives dist
}

现在,当我执行 ./gradlew --info :$MODULE:artifactoryPublish 时,它会提示缺少输出,并且不会将 tar 发布到artifactory。

如何解决这个问题?

> Task :$MODULE:artifactoryPublish
Task ':$MODULE:artifactoryPublish' is not up-to-date because:
  Task has not declared any outputs despite executing actions.
:$MODULE:artifactoryPublish (Thread[Execution worker for ':',5,main]) completed. Took 0.002 secs.
:artifactoryDeploy (Thread[Execution worker for ':',5,main]) started.

> Task :artifactoryDeploy
Task ':artifactoryDeploy' is not up-to-date because:
  Task has not declared any outputs despite executing actions.
Deploying build descriptor to: $OUR_ARTIFACTORY/artifactory/api/build
Build successfully deployed. Browse it in Artifactory under $OUR_ARTIFACTORY/artifactory/webapp/builds/$MODULE/1554465369336
:artifactoryDeploy (Thread[Execution worker for ':',5,main]) completed. Took 0.155 secs.

最佳答案

事实证明,解决方案是添加

artifactoryPublish {
    publications('mavenJava')
}

关于gradle 发布未拾取 Artifactory : "Task has not declared any outputs despite executing actions.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55535179/

相关文章:

android - Gradle汇编AAR库中的重复类定义

docker - 拉人工 docker 图像

artifactory 不要以非法的 repo 名称开头

gradle - 如何取消引用 Gradle 出版物的集合?

c# - 尝试在 .Net5 中发布时出现 Nuget 错误

android-studio - Gradle 5.4.1解决了我的代理问题。有人可以解释为什么吗?

gradle构建后执行任务

android - Flutter:将 Proguard 与 Gradle 7.0.4 结合使用

date - 我如何获得 sitecore 项目的发布日期?

sockets - PubNub 停止发布