我正在努力通过Gradle任务使用Jenkinsfile将war文件部署到Nexus存储库。
战争正在成功地创建。我对部署JAR也没有问题(因为到处都有如何做到这一点的例子)。
所以我在我的构建中有这个发布部分。等级
:
publishing {
repositories {
maven {
URI releasesUrl = new URI("${UploadURL}/repository/releases")
URI snapshotsUrl = new URI("${UploadURL}/repository/snapshots")
afterEvaluate {
url version.endsWith("SNAPSHOT") ? snapshotsUrl : releasesUrl
}
credentials {
username "${user}"
password "${password}"
}
}
}
publications {
mavenWeb(MavenPublication) {
from components.web
artifact war.archivePath
}
}
}
带插头:
apply plugin: 'java'
apply plugin: 'maven'
apply plugin: 'maven-publish'
apply plugin: 'org.springframework.boot'
apply plugin: 'war'
存储库的URL也在构建脚本中正确指定(使用jar测试发布工作正常)
和Jenkinsfile:
stage ('Publish war') {
steps {
sh "sh gradlew publish"
}
}
目前,我从jenkins build中得到以下错误:
任务:发布MavenWebPublicationToMavenRepository失败
失败:构建失败,但有一个异常。
出错的地方:任务“: PublishMavenWebPublicationToMavenRepository”执行失败。未能将发布“mavenWeb”发布到存储库“maven”无效的发布“mavenWeb”:具有相同扩展名和分类器的多个工件(“war”、“null”)。
我很确定这个问题在Gradle任务的“出版物”部分。为了发布JAR,我一直这样使用它:
[...]
publications {
mavenJava(MavenPublication) {
from components.java
artifact sourceJar
}
}
[...]
task sourceJar(type: Jar) {
classifier 'sources'
from sourceSets.main.java
}
我不知道如何为此任务配置来自、工件和分类器的。我甚至不知道是否应该配置所有这些参数。。。谁能帮我一下吗?
原来,问题的根源是这个部分:
afterEvaluate {
url version.endsWith("SNAPSHOT") ? snapshotsUrl : releasesUrl
}
此功能适用于Gradle 5。然而,我使用的是Gradle4.8版本。这将导致null而不是propper url值。。。不幸的是,由于异常消息没有指出问题所在,所以花了一段时间。
我是Gradle、nexus和Maven的新手,并尝试使用Gradle'publish'任务将Maven工件从Jenkins发布到一个新的nexus存储库。Jenkins作业在发布时失败,出现以下错误。我已经在作业中为Nexus提供了用户名和密码。 在第一次发布之前,我们需要在nexus maven存储库中创建文件夹结构吗?并添加maven-metadata.xml?如何生成*.pom.sha和*
我正在尝试在 Jenkins 中配置以下工作流模式: 构建战争文件 我似乎错过了一些东西。应用程序的组件(jar 文件等)似乎在目标版本/快照目录中很好地部署到 Artifactory 中。然而,最终的WAR神器似乎并没有存储在Artifactory中,尽管Jenkins清楚地指出该神器是成功构建的。 我使用的是标准目标:全新安装。我也尝试过(没有改变):全新安装重新打包 我安装了Jenkins的
我想将jar发布到Nexus快照存储库。 如果你知道如何实现,我很想知道。 我将从詹金斯的工作中发布jar。 我想发布到快照存储库,但我无法调查/实现各种事情。 根据我的研究,似乎已经有了下面的Jenkins插件 null 卷曲时的错误信息如下所示。 谢谢你。
我试图将构建Jenkins/Maven的结果发布到Nexus存储库。 我使用clean install maven目标进行构建。 我已经为jenkins安装并配置了Nexus Repository Manager Publisher插件,因此它可以在构建后的步骤中发布到我的Nexus Repo。 问题是: 我不明白,没有办法从jenkins builds用这个插件发布快照到nexus??
这个构建将作为一个自由式项目从Jenkins运行,所以我只需要在build-invoke Gradle script-tasks->中指定 从Jenkins配置Nexus凭据并将其传递给Gradle taks的正确方法是什么(我不想在带有源代码的Git repo中使用它们)?
我已经配置Gradle使用新的Maven Publisher插件发布项目工件,不幸的是,这个插件在生成的中存在依赖关系问题-依赖关系的范围而不是。 我的配置是这样的: 发布很简单,只需一个命令: 如何以旧的(工作)方式实现这一点?项目发布时是否可以自动进行项目标记?