4

こんにちは、ジャージの太陽のドキュメントに従っています。この単純な 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/

ありがとう!!

4

1 に答える 1

3

jersey-server から jersey-core への依存関係が Gradle によって適切に解釈されていないようです。pomを見ると、jersey-core の依存関係がプロファイルにあることがわかります。これが、取り上げられていない理由である可能性があります。jersey-core は jsr311 に依存しています。このような場合、Gradle はおそらく「activeByDefault」とマークされたプロファイルを考慮する必要があるようです。

とは言っても、2 つの jar を直接指定するという解決策にすでにたどり着いています。設定する行は、maven xml よりもまだ少ないです :)

また、必要なすべての jar が mavenCentral にあるように見えるため、スナップショット リポジトリは何も提供していません。

これは、これら 2 つの余分な jar について明示的に言及する必要性を解決するものではありませんが、これで理由が説明されることを願っています。これに対処する必要があると思われる場合は、 Gradle Jiraで問題を提起することをお勧めします。

于 2012-11-16T07:43:12.057 に答える