2012-10-29 74 views
4

嗨,我正在关注泽西太阳文档。我以前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> 

这个简单的pom.xml之前部署和添加库

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

然而,当我尝试用gradle这个要做到这一点,它似乎并没有工作,没有下载其余的依赖关系,需要和aparently我必须明确地把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这个build文件有趣的,你可以去

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

谢谢!

+0

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

+0

由于您正在访问SNAPSHOT存储库,但您在依赖关系中使用了发行版,因此给定的存储库在Maven或Gradle中都没有任何意义。 – 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 –

相关问题