您好我正在关注泽西太阳文档。我之前在
之前部署了这个简单的pom.xml<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 :(得分:3)
似乎Gradle没有正确解释从jersey-server到jersey-core的依赖性。看the pom表明,jersey-core依赖关系是在一个配置文件中,这可能是为什么它没有被提取。而jersey-core依赖于jsr311。听起来像Gradle应该在这种情况下考虑标记为'activeByDefault'的配置文件。
那就是说,你已经找到了解决方案,即直接指定两个jar - 而且配置的行数仍然少于maven xml:)
此外,看起来您需要的所有jar都可以在mavenCentral中找到,因此快照存储库没有任何贡献。
这并不能解决明确提到这两个额外罐子的需要,但我希望这能解释原因,如果你认为应该解决这个问题,你可能想在Gradle Jira上提出一个问题。