2013-04-15 2 views
1

Я пытаюсь сделать Gradle uploadArtifacts, чтобы загрузить на мой связующей сервер и он работает, когда мой build.gradle является:Gradle uploadArtifacts Сбой при определении групповой собственности

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, загрузка все равно не удалась. (Это не сработает без идентификатора группы, хотя это заставляет меня думать, что это не проблема связи).

My Setup является:

Gradle 1,5 Gradle времени сборки: Среда, 27 марта 2013 1:51:06 PM UTC Groovy: 1.8.6 Ant: Apache Ant (TM) версия 1.8.4 составлен на 22 мая 2012 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

Кто-нибудь видел это раньше или знал, что я могу делать неправильно?

спасибо.

ответ

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

+0

хм .. вы на что-то. если я изменю версию до 1.0-SNAPSHOT, она будет загружена с идентификатором группы. это действительно сбивает с толку. поэтому с идентификатором группы я могу загружать только версию 1.0-SNAPSHOT и без идентификатора группы я могу загрузить 1.0-SNAPSHOT или 1.0. подскажите, почему это было бы? – dev

+0

Я предполагаю, что если вы опустите идентификатор группы, вы обойдете проверки в Nexus, которые отклонят ваш артефакт на основе политики репозитория, потому что ни один идентификатор группы недействителен для артефактов maven («groupId однозначно идентифицирует ваш проект во всех проектах ", http://maven.apache.org/guides/mini/guide-naming-conventions.html или" groupId: Это, как правило, уникально среди организации или проекта. ", http://maven.apache.org /pom.html#Maven_Coordinates) – nabcos

+0

спасибо! что объясняет это достаточно для меня. теперь, чтобы узнать больше о градиенте. :) – dev

Смежные вопросы