【问题标题】:uploadArchives does not upload artifacts generated from other gradle filesuploadArchives 不会上传从其他 gradle 文件生成的工件
【发布时间】:2014-12-23 17:02:30
【问题描述】:

在我的 build.gradle 中,我有生成 war 文件的 war 任务和生成 jar 文件的几个任务。 Jar 生成任务在其他 gradle 文件中定义,并使用 apply from 子句在 main build.grade 中导入。

问题是uploadArchives只上传war文件,不上传其他文件生成的jar文件。

这可能是什么问题的潜在原因?

我的 build.gradle 如下所示

apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'maven'

war {
   .... // generates war file
}

apply from: 'Createjar1.gradle'  // creates jar1
apply from: 'Createjar2.gradle'  // creates jar2
apply from: 'Createjar3.gradle'  // creates jar3

uploadArchives {
repositories {
    mavenDeployer {
        repository(url:"${nexusURL}") {
            authentication(userName: 'username', password: 'password')
        }
        snapshotRepository(url: "${nexusURL}") {
            authentication(userName: 'username', password: 'password')
        }
    }
 }
}

【问题讨论】:

    标签: gradle nexus


    【解决方案1】:

    默认情况下,“maven”插件将上传“存档”配置中包含的所有工件。您的 WAR 会自动添加到该配置中,但必须明确定义其他工件。

    artifacts {
        archives jar1Task
        archives jar2Task
        archives jar3Task
    }
    

    【讨论】:

    • 这会给出错误消息,表明具有名称的工件已经存在。我能够使用以下方法解决问题:档案文件:文件(“abc.jar”),名称:“abc”,类型:'jar',档案文件:文件(“xyz.jar”),名称:“xyz ", type: 'jar' 此外,您需要为您在档案中添加的每个工件添加以下内容到 uploadArchives addFilter('abc') {artifact, file -> artifact.name == 'abc' }
    • 我相信您可以通过为您的工件提供独特的分类器来解决这个问题。
    • 分类器不适用于我的工件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-10
    • 1970-01-01
    • 2013-03-30
    • 2015-03-15
    • 1970-01-01
    相关资源
    最近更新 更多