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

Grails发布莫名其妙地无法发布到Nexus

唐阳飇
2023-03-14

背景:我正在尝试迁移项目,以使用新的、升级的nexus实例,而不是旧的。Gradle项目和Maven项目进展顺利,但Grails项目进展并不顺利。

问题:发布和单独发布无法发布到新的nexus。快照发布工作正常。在旧的nexus中,快照和发布都工作得很好,我之前提到的使用相同用户凭据的Maven和Gradle项目也工作得很好。

错误如下

POM生成: /var/atlassian/application-data/bamboo/xml-data/build-dir/CS-AREL-JOB1/target/pom.xml.

[部署]部署到https://nexus.mydomain.com/repository/maven-releases/

[部署]上传:com/mydomain/myproject-admin/1.11.9/myproject-admin-1.11.9。war to repository atlassian\u nexus\u发布于https://nexus.mydomain.com/repository/maven-releases/

[部署]从atlassian\u nexus\u版本传输44484K

[部署]写入服务器时出错

[部署]处理Maven工件任务时出错。

[部署]诊断:

[部署]

[部署]部署工件com时出错。mydomain:myproject admin:war:部署工件时出错:传输文件时出错

[部署]写入服务器时出错

我需要的是关于在哪里寻找的一些想法,因为所有的常见检查似乎都不是问题。用户凭据正确,适用于gradle和maven项目。URL是正确的,适用于gradle和maven项目。在旧的nexus和新的nexus使用之间,构建没有改变,因此我假设构建仍然正确地生成了发布工件,而不是快照工件。还有什么问题?

配置:

grails.html" target="_blank">settings.groovy

grails.project.dependency.authentication = {
    repositories {
        mavenRepo "https://nexus.mydomain.com/repository/maven-public/"
    }
    credentials {
        id = "atlassian_nexus"
        username = "dev_read_user"
        password = "****"
    }
}
grails.project.ivy.authentication = {
    repositories {
        mavenRepo "https://nexus.mydomain.com/repository/maven-public/"
    }
    credentials {
        realm = "Sonatype Nexus Repository Manager"
        host = "atlassian.mydomain.com"
        username = "dev_read_user"
        password = "****"
    }
}
grails.project.dependency.distribution = {
    localRepository = "~/.m2/"
    remoteRepository(id: "atlassian_nexus_snapshots", url: 'https://nexus.mydomain.com/repository/maven-snapshots/'){
        authentication(username: 'nexus_user', password: '****')
    }
    remoteRepository(id: "atlassian_nexus_releases", url: 'https://nexus.mydomain.com/repository/maven-releases/'){
        authentication(username: 'nexus_user', password: '****')
    }
}

上面的文件在迁移过程中发生了最多的更改,因此我认为这是最可能的原因,尽管nexus本身的某些配置也可能是一个问题?

bamboo-build-release.sh

echo 'Making and commiting release version...';
JAVA_HOME=$bamboo_jdk_1_8 \
./grailsw version-update x.x.x --non-interactive;
git commit -m 'Increment version to release' -- application.properties;

echo 'Creating and pushing tag...';
grep app.version application.properties | cut -d"=" -f2 | xargs -I 
version git tag -a version -m "Tag Release";
git push $GIT_URL --tags;

echo 'Building RELEASE war and publishing to Nexus...';
JAVA_HOME=$bamboo_jdk_1_8 \
./grailsw prod maven-deploy --repository=atlassian_nexus_releases -- non-interactive -verbose;

echo 'Incrementing to next snapshot...';
JAVA_HOME=$bamboo_jdk_1_8 \
./grailsw version-update p s --non-interactive;

echo 'Committing and pushing version changes...';
git commit -m 'Increment version to next snapshot' --application.properties;
git push $GIT_URL $GIT_BRANCH;

echo 'Completed bamboo-build-release.sh';

我在上面的构建文件中所做的唯一更改是添加了“-verbose”,这样我就可以获得更多关于它失败原因的信息。如上所述,它没有提供更多关于发布失败原因的详细信息。

我验证了生成的pom具有指定的正确的非快照版本:

<?xml version='1.0' encoding='UTF-8'?>
<project xmlns='http://maven.apache.org/POM/4.0.0' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd'>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.mydomain</groupId>
  <artifactId>myproject-admin</artifactId>
  <packaging>war</packaging>
  <version>1.11.9</version>
  <name>myproject-admin</name>
</project>

请就我可能寻找的问题提出建议。

共有1个答案

宗政德宇
2023-03-14

虽然我仍然不知道为什么它在发布和快照时总是失败,但以下针对ivy-to-nexus间歇性故障的解决方案对我有效:https://support.sonatype.com/hc/en-us/articles/218101688-Ivy-deploy-fails-intermittently-with-java-io-IOException-Error-writing-to-server-

最后,我在BuildConfig中添加了以下依赖项。groovy文件:

dependencies{
    build 'commons-codec:commons-codec:1.7'
    build 'commons-httpclient:commons-httpclient:3.1'
    build 'commons-logging:commons-logging:1.1.1'

    // other dependencies...
}
 类似资料:
  • 今天午刚睡醒就接到面试电话,用友java一面(因为海投,所以刚开始不知道面试的公司,面试官介绍他是哪个公司的时候,我也没听清楚,后面加了微信,问了一下才知道),开始就是自我介绍,然后开始挖项目,就是一通吹,然后自圆其说,然后java的基本类型有哪些?基本类型和引用类型的区别?mysql的索引,索引的底层数据结构,索引失效的场景?Spring boot的IOC aop,自动装配?环形链表?然后面到这

  • 我正在运行Nexus3.0.1-01,并使用它来托管Maven存储库和NPM注册中心。对于NPM,我有一个npmjs.org的本地镜像,一个本地NPM注册表和一个组合了两者的组... 我一直在npm内部使用它,在那里我可以使用npm-public组作为我的注册表,这一直工作良好。所以,我可以使用Nexus镜像NPMJ。 下一步是使用本地编写的npm模块,并将它们发布到npm-releases(在我

  • 我写这篇文章是因为我没有找到答案(我用标记Shutdown、Reboot和SSH进行了一些搜索)。 自fews数月以来,我有2个珊瑚(3个珊瑚中的2个)无法理解地关闭,然后变得无法接近。 当这种情况发生时,我被迫去设备(串行连接也不工作,风扇也不工作),拔掉插头,然后重新插上电源,以便能够通过SSH重新连接。 最好的办法是什么?非常感谢。

  • 我有ASP.NETCore C#web应用程序。我做了一些现在使用C#7.1功能的更改。我更改了项目版本,因此它可以编译和运行。但是,当我尝试发布项目时,我收到了一个错误: C# 7.0中没有“默认文本”功能。请使用语言版本7.1或更高版本。 我看到的编译命令是: 正如其他地方建议的那样,我安装了(v2.6.1),但没有任何区别。 是否有专门影响发布的 Visual Studio 设置? 更新:看

  • 我已经写了一个C程序,在这里我画了一个茶壶并应用了照明。它本身很简单,但我也使用着色器。简单我是GLSL新手我刚刚尝试了一个简单的片段着色器,但是屏幕输出令人费解。 在这个文件中,我在init方法中初始化了glew,在这里我还编译了顶点和片段着色器。它们位于“顶点着色器”和“片段着色器”文件中。 你可能不认识什么是Light和材质。它们只是一些包含有关灯的所有信息的结构。我已经测试了这些结构,所以