gpt4 book ai didi

gradle - 如何为每个项目发布多个工件

转载 作者:行者123 更新时间:2023-12-03 02:53:14 33 4
gpt4 key购买 nike

我正在尝试为每个项目发布多个工件。

How to upload an existing collection of 3rd-party Jars to a Maven server in Gradle?

我试图应用这个解决方案 -

我的 build.gradle 看起来像:https://gist.github.com/anonymous/01b31c26eca7a507c14f

我尝试遵循文档:http://www.gradle.org/docs/current/us ...

我得到的是:

出了什么问题:任务“:安装”执行失败。无法发布配置“文件”> POM 不能有多个具有相同类型和分类器的工件。已经有 MavenArtifact my:jar:jar:null,正在尝试添加 MavenArtifact my:jar:jar:null。

我的环境:Gradle 2.2.1

构建时间:2014-11-24 09:45:35 UTC 内部版本号:无 修订:6fcb59c06f43a4e6b1bcb401f7686a8601a1fb4a

Groovy:2.3.6 Ant:2013 年 12 月 23 日编译的 Apache Ant(TM) 版本 1.9.3 JVM:1.7.0_71 (Oracle Corporation 24.71-b01) 操作系统:Windows 8.1 6.3 amd64

谢谢你的帮助。

最佳答案

嗨,目前我有同样的问题,但在不同的背景下。我在我的 java 项目中使用 proguard,我想使用 obiuvsly gradle 有两个不同的工件。
我做了一个 Proguard 任务,它产生了一个混淆的 .jar :

    task proguard(type: proguard.gradle.ProGuardTask)   
{
injars 'build/libs/foundation.jar'
outjars 'build/libs/foundationObfuscated.jar'
}

第二次我们需要将我们的新工件添加到默认工件:
artifacts 
{
archives(file: file("$projectDir/build/libs/foundationObfuscated.jar"),
builtBy: proguard)
{
classifier = 'obfuscated'
}
}

最重要的是,您需要添加一个不同于默认“分类器”的新“分类器”。在此配置中,我还指定我的存档取决于上一个任务('proguard')。
最后我们可以上传两个工件:
uploadArchives {
repositories.mavenDeployer {

pom.groupId = 'com.groupid'
pom.artifactId = 'artifactid'
pom.version = "${versionMajorDevelop}.${buildTime()}"

repository(url: "file://${workingLocalDirArtifact()}")
}
}

在这里我特别想发布两个不同的工件(通用的一个和 '${versionMajorDevelop}.${buildTime()}-obfuscated'
在本地存储库“workingLocalDirArifact”中,但您可以使用其他配置。
默认情况下,Gradle 将运行 proguard 任务,并且您将发布多个工件。

关于gradle - 如何为每个项目发布多个工件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27425177/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com