Gradle:任务发布因compileJava错误而失败,但构建正常

时间:2019-06-17 12:46:25

标签: java gradle upload gradle-release-plugin

我正在研究一个多模块项目,并尝试配置发布任务以使用researchgate gradle-release插件一次将所有模块档案上传到Nexus上。我首先在allprojects块中配置了该插件,并且运行良好,但是它为每个已发布的模块都进行了新的标记/提交,而这并不是我期望的。因此,我将uploadArchives配置保留在allprojects中,但移动了发布配置以使其仅适用于根项目。 我的问题如下: 当我从根目录使用gradle clean build时,效果很好。 当我进行gradle clean上载时,它可以正常工作并在nexus上载所有模块。 当我做gradle clean release并添加

afterReleaseBuild.dependsOn uploadArchives

它也可以工作,但是只能将根项目上传到nexus,而不是模块。 所以我所做的就是修改任务依赖项,如下所示:

afterReleaseBuild.dependsOn subprojects.uploadArchives

这给我的一个模块造成了compileJava错误,原因是该项目的其他模块创建的某些软件包不存在。 我已经尝试了其他方法来修改依赖项,例如:

afterReleaseBuild.dependsOn allprojects.findResults{ it.tasks.findByName('uploadArchives')}

但是我遇到了同样的错误。

知道当我从根目录使用它而不调用发布任务时,uploadArchives和构建工作良好,这与最后一个任务有关,但是我真的不明白我在那里所缺少的东西。 感谢您提供的任何帮助, 这是我的build.gradle的有趣示例:

allprojects {
apply plugin: 'maven' 
uploadArchives{
            repositories{
                mavenDeployer{
                    if(project.version.endsWith('-SNAPSHOT')) {
                        repository(url: "nexus-repo-snapshots") {
                            authentication(userName: myusername, password: mypassword)
                        }

                    }

                    else {
                        repository(url: "nexus-repo-releases/") {
                            authentication(userName: myusername, password: mypassword)
                        }
                    }


                }
            }
        }
}

apply plugin: 'net.researchgate.release'

release {
    failOnCommitNeeded = false
    failOnPublishNeeded = false
    failOnSnapshotDependencies = false
    failOnUnversionedFiles = false
    failOnUpdateNeeded = false
    versionPropertyFile = 'gradle.properties'
    //versionPatterns = [
    // Increments minor number: "2.5.17-SNAPSHOT" => "2.6.0-SNAPSHOT"
    //       /[.]*\.(\d+)\.(\d+)[.]*/: { Matcher m, Project p -> m.replaceAll(".${(m[0][1] as int) + 1}.0") }
    //]
    tagTemplate = "mytag"

    git{
        requireBranch='my_branch'
        pushToRemote='origin'
    }

}

afterReleaseBuild.dependsOn subprojects.uploadArchives

0 个答案:

没有答案