2012-10-29 5 views
4

Привет, Я следую документации по джерси. Я развертывается перед этим простым pom.xml перед темJersey + Gradle с зависимостями maven не работает

<dependency> 
    <groupId>com.sun.jersey</groupId> 
    <artifactId>jersey-server</artifactId> 
    <version>1.14</version> 
</dependency> 
<dependency> 
    <groupId>com.sun.jersey</groupId> 
    <artifactId>jersey-grizzly2</artifactId> 
    <version>1.14</version> 
</dependency> 

и добавить репозиторий

<url>https://maven.java.net/content/repositories/snapshots/</url> 

Тем не менее, когда я пытаюсь сделать это с Gradle, это, кажется, не работает, не загружая остальная часть зависимостей, которая требует и, очевидно, явным образом ставить javax.ws.rs:jsr311-api:1.1.1 и даже джерси-ядро. Это мой build.gradle.

apply plugin: 'java' 
apply plugin: 'eclipse' 
apply plugin: 'jetty' 

sourceCompatibility = 1.6 

repositories { 
    mavenCentral() 
    maven { 
     url 'https://maven.java.net/content/repositories/snapshots/' 
    } 
} 

List compileLibraries =['com.sun.jersey:jersey-server:1.14', 
         'com.sun.jersey:jersey-grizzly2:1.14', 
         'com.sun.jersey:jersey-core:1.14', 
         'javax.ws.rs:jsr311-api:1.1.1'] 


dependencies { 
    compile (compileLibraries) 

    testCompile group: 'junit', name: 'junit', version: '4.+' 
} 

httpPort = 8888 
stopPort = 9451 
stopKey = 'foo' 

Является ли это правильное Gradle поведение? Как я могу сделать то же самое, что и с maven?

Редактировать

Только ради этого, и если кто-то интересен видя Gradle файл сборки, который работает с Gradle вы можете пойти в

https://github.com/necronet/XTradeJerseyimpl/

Спасибо !!

+0

http://forums.gradle.org/gradle/topics/simple_gradle_java_jersey_web_service_dependency_issue –

+0

Данное хранилище не имеет смысла ни в Maven или в Gradle, потому что вы обращаетесь к хранилищу SNAPSHOT, но вы используете релизы в своих зависимости. – khmarbaise

+0

Я также пробовал его с https://maven.java.net/content/repositories/ Единственная причина, по которой я использую репозиторий моментальных копий без везения. – Necronet

ответ

3

Похоже, что зависимость от джерси-сервера до джерси-ядра не интерпретируется Gradle должным образом. Глядя на the pom, показано, что зависимость от джерси-ядра зависит от профиля, и, вероятно, его не собирают. И jersey-core имеет зависимость от jsr311. Похоже, что Gradle должен учитывать профиль, отмеченный как «activeByDefault», в таких случаях.

Тем не менее, вы уже нащупали решение, которое должно указать две банки непосредственно - и это все еще меньше строк, чтобы настроить, чем Maven XML :)

Кроме того, это выглядит как все банки вам нужно найти в mavenCentral, поэтому хранилище моментальных снимков ничего не способствует.

Это не решит необходимость явно упоминать эти два дополнительных баночки, но я надеюсь, что это объясняет, почему, и вы можете поднять вопрос на Gradle Jira, если считаете, что это нужно устранить.

+0

Я просто столкнулся с этим - кто-нибудь последовали за Gradle Jira? Похоже, что довольно редко встречаются эти «зависимости профиля», но все же раздражает. –

+0

Я сделал кое-что, и нашел, что это должно быть разрешено - http://issues.gradle.org/browse/GRADLE-1997 –

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