0

struts2 Web アプリを guice2.0 から guice3.0 にアップグレードしようとしています。Maven jettyを使用してテストしようとしています。3.0 リリースの正しいバージョンと groupId を使用するように pom.xml を正常にアップグレードしましたが、mvn jetty:run を呼び出すと、guice-3.0-no_deps.jar をダウンロードしようとしていることがわかります。

ビルド エラーがスローされ、中央リポジトリが見つかりませんか?

Guice 拡張機能を含めないと、このエラーは発生しません。

何か案は?

ありがとう

4

1 に答える 1

1

この質問を guice ユーザー グループにも投稿しました。これが私が受け取った答えです。

guice-3.0-no_deps.jar は、拡張機能をコンパイルするために使用されるビルド時のアーティファクトですが、実行時には必要ありません。Guice チームはこの「uber-jar」に依存する人々を望んでいないため、Maven Central にはありません。間違って。拡張機能には、guice-3.0-no_deps.jar へのオプションの依存関係 (コンパイルできるようにするため) がありますが、ランタイムの場合には、guice-3.0.jar へのオプションではない依存関係もあります。

正常に動作する Maven プラグインは、no_deps 依存関係がオプションであり、欠落している場合にビルド エラーをスローしないことを確認する必要があるため、これは jetty プラグインのバグのように聞こえます。Jetty のバグを回避するには、次のようにこの依存関係を明示的に非表示にします。

    <dependency>
        <groupId>com.google.inject.extensions</groupId>
        <artifactId>guice-struts2</artifactId>
        <version>3.0</version>
        <exclusions>
            <exclusion>
                <groupId>com.google.inject</groupId>
                <artifactId>guice</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>com.google.inject</groupId>
        <artifactId>guice</artifactId>
        <version>3.0</version>
    </dependency>

元のビルド pom ではこれを実行できないことに注意してください。これは、元のコンパイルを実行するときに no_deps 依存関係が必要なためです。

于 2011-06-02T21:14:48.100 に答える