我正在使用 Grails 2.4.1 和Grails Release 插件版本 3.0.1。
我有一个 Sonatype nexus 存储库 (v2.3.1-01) 设置,它被其他几个项目使用,没有问题。
我正在尝试创建一个新插件,我想通过 nexus 中的 SNAPSHOT 存储库(稍后通过我们的 Releases 存储库)分发它。
在我的 ${projectName}GrailsPlugin.groovy 文件中,我有:
def groupId ="my-department-grails-plugins"
def version = "0.1-SNAPSHOT"
在我的 application.properties 文件中,我有:
app.name=MyPluginNameForGrails
在我的 BuildConfig.groovy 中,我有:
grails.project.repos.newsnapshots.url = "http://internal.server.address/nexus/service/local/repositories/snapshots"
grails.project.repos.newsnapshots.username = "username"
grails.project.repos.newsnapshots.password = "password"
我正在尝试使用以下命令开始:
发布插件 --snapshot --repository=newsnapshots --stacktrace
构建成功一切看起来都很好,直到它尝试进入 nexus 并且我得到:
使用 grails.project.repos.newsnapshots 中配置的用户名和密码 ....Error | 无法发布插件:部署工件'ald-grails-plugins:my-plugin-name-for-grails:zip'时出错:部署工件时出错:无法传输文件: http://internal.server.address/nexus/content /groups/public/my-department-grails-plugins/my-plugin-name-for-grails/0.1-SNAPSHOT/my-plugin-name-for-grails-0.1-20140815.191240-1.zip。返回码是:400
我发现了一个相关的 StackOverflow 问题,该问题似乎相关,但他们描述的导致 400 的条件都不存在。
我还发现了 Sonatype Nexus 的文章,它描述了 400 的可能原因,而那些似乎也不是。
如果您注意到我指向的存储库,它直接指向存储库,但是在错误消息中它列出了组的路径。我认为这可能在某种程度上相关,但如果是这样的话......我不确定如何修复它,因为这似乎发生在 Releases Plugin 内部。
我还应该补充一点,我已经从 GrailsPlugin.groovy 文件中删除了 -SNAPSHOT,并将目标存储库更改为我们的 RELEASES 存储库,结果完全相同。