1

我正在尝试做一个 gradle uploadArtifacts 上传到我的 nexus 服务器,当我的 build.gradle 是:

apply plugin: 'java'
version = "1.0"
uploadArchives {
    repositories { ivy { url "http://<server>/nexus/content/repositories/snapshots" } }
}

但是,如果我指定要上传到的组,例如,如果我将 build.gradle 更改为:

apply plugin: 'java'
group = "test"      // <-- addition of group property
version = "1.0"
uploadArchives {
    repositories { ivy { url "http://<server>/nexus/content/repositories/snapshots" } }
}

它没有说:

Execution failed for task ':uploadArchives'.
> Could not publish configuration 'archives'
   > java.io.IOException: Could not PUT 'http://<server>/nexus/content/repositories/snapshots/test/test-project/1.0/test-project-1.0.jar'. Received status code 400 from server: Bad Request

如果我使用 --debug 运行,我得到的异常是:

Caused by: java.io.IOException: Could not PUT 'http://<server>/nexus/content/repositories/snapshots/test/test-project/1.0/test-project-1.0.jar'. Received status code 400 from server: Bad Request

我认为在服务器上创建目录可能有问题,因为这是一个新工件,但即使我手动创建 test/test-project/1.0,上传仍然失败。(虽然没有组 ID,但它不会失败,这让我相信这不是一个联系问题)。

我的设置是:

Gradle 1.5 Gradle 构建时间:2013 年 3 月 27 日星期三下午 1:51:06 UTC Groovy:1.8.6 Ant:Apache Ant(TM) 版本 1.8.4 编译于 2012 年 5 月 22 日 Ivy:2.2.0 JVM:1.6.0_43 (Apple Inc. 20.14-b01-447) 操作系统:Mac OS X 10.7.5 x86_64

Sonatype Nexus™ 2.3.0-04

有没有人见过这个或知道我可能做错了什么?

谢谢你。

4

1 回答 1

3

我根本不知道 gradle,但您似乎正在尝试将非快照工件发布到快照存储库:

version = "1.0"
url "http://<server>/nexus/content/repositories/*snapshots*"

您还可以在最终 URL 中看到: http://<server>/nexus/content/repositories/snapshots/test/test-project/1.0/test-project-1.0.jar

于 2013-04-15T17:06:07.127 回答