当前位置: 首页 > 知识库问答 >
问题:

无法使用Gradle将工件发布到Nexus maven存储库

隗俊誉
2023-03-14

我是Gradle、nexus和Maven的新手,并尝试使用Gradle'publish'任务将Maven工件从Jenkins发布到一个新的nexus存储库。Jenkins作业在发布时失败,出现以下错误。我已经在作业中为Nexus提供了用户名和密码。


:common-test:publishMavenJavaPublicationToMavenRepositoryCould not find metadata 
com.xx.audit:common-test:1.0.3-SNAPSHOT/maven-metadata.xml in
 remote (https://nexus.xx.com:8443/content/repositories/snapshots)

Upload https://nexus.xx.com:8443/content/repositories/snapshots/yy/audit/common-test/1.0.3-SNAPSHOT/common-test-1.0.3-20151102.120123-1.jar
Could not transfer artifact com.xx.audit:common-test:jar:1.0.3-20151102.120123-1 
from/to remote (https://nexus.xx.com:8443/content/repositories/snapshots):
 Could not write to resource 'yy/audit/common-test/1.0.3-SNAPSHOT/common-test-1.0.3-20151102.120123-1.jar'

在第一次发布之前,我们需要在nexus maven存储库中创建文件夹结构吗?并添加maven-metadata.xml?如何生成*.pom.sha和*.pom.md5。请帮帮我。

Build.Gradle配置:

  apply plugin: "maven-publish"

    //* New Gradle task to jar source
    task sourcesJar(type: Jar, dependsOn: classes) {
        classifier = 'sources'
        from sourceSets.main.allSource
    }

    //* New Gradle task to jar javadoc
    task javadocJar(type: Jar, dependsOn: javadoc) {
        classifier = 'javadoc'
        from javadoc.destinationDir
    }

    publishing {
        publications {
            mavenJava(MavenPublication) {
                from components.java

                artifact sourcesJar {
                    classifier "sources"
                }
            }
        }
    }

    publishing {
        repositories {
            maven {
                credentials {
                    username nexusUsername
                    password nexusPassword
                }   
                if (project.version.endsWith('-SNAPSHOT')) {
                    url nexusSnapshotRepoURL
                } else {
                    url nexusReleaseRepoURL
                }   
            }   
        }
    }

共有1个答案

宇文金鑫
2023-03-14

我不知道maven-publish Gradle插件。通常使用uploadArchives任务。在Nexus book examples项目中提供了其用法的完整示例。请将其用作测试凭据和安装程序的参考。

 类似资料:
  • 我已经配置Gradle使用新的Maven Publisher插件发布项目工件,不幸的是,这个插件在生成的中存在依赖关系问题-依赖关系的范围而不是。 我的配置是这样的: 发布很简单,只需一个命令: 如何以旧的(工作)方式实现这一点?项目发布时是否可以自动进行项目标记?

  • 我试图使用Gradle将Jar文件发布到Azure DevOps工件中,但我得到了以下错误信息: 失败:生成失败,出现异常。 > 问题:在根项目“Project1”中找不到任务“publish”。 尝试:运行gradle tasks以获取可用任务的列表。使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获得更多日志输出。运行--扫描以获得完整的洞察力。

  • 问题内容: 我正在开发两个相关的项目。其中一个是“助手”,另一个是“主”。我不断地更新“主要”,但是我有时也会更新“助手”。之后,我在gradle的maven插件中运行目标,并在本地maven存储库中获取jar。之后,我在“主要”项目中进行了gradle更新,并链接了更新的jar。 有两个问题。 1)如果仍然使用maven插件,那么如何将源代码也发布到本地Maven存储库中呢? 2)我可以在没有m

  • 我正在开发两个相关项目。其中一个是“帮手”一个,另一个是“主”一个。我在不断地更新“主”,但时不时也在更新“帮手”一个。然后,我在Gradle的maven插件中运行goal,并在本地maven repo中获取JAR。之后,我在“main”项目中进行分级更新,并将更新的jar链接起来。 有两个问题。 1)如果继续使用maven插件,那么如何将源代码发布到本地maven repo中? 2)如果没有ma

  • 我用gradle编写了一个spring启动应用程序,它运行正常。 我使用bootRepackage构建了一个胖jar,我添加了maven插件以便安装jar。 问题是我无法将胖jar安装到maven存储库中。 "bootRepackage"建立那个胖罐子文件 安装依赖于jar阶段,因此它构建了一个覆盖胖jar文件的瘦jar 将瘦jar复制到存储库 这是我的基本项目的gradle脚本,请注意,我仍在尝

  • 我尝试用以下代码保存从internet下载的文件 但在运行时,我得到的错误如下 03-04 20:42:51.080 8972-8972/com.example.me.demo2 E/BitmapFactory:无法解码流:java.io.FileNotFoundExcoop: /storage/emulated/0/.tanks/4a100abb-0e55-4062-8c37-f11f4189e