2

ここで利用可能なサーブレットテストの例をmavenを使用して実行したいと思います。Javaee Web APIは次のように宣言する必要がありますprovided

    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-web-api</artifactId>
        <version>6.0</version>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>httpunit</groupId>
        <artifactId>httpunit</artifactId>
        <version>1.7</version>
        <scope>test</scope>
    </dependency>

ただし、例のテストの1つはをスローしServletExceptionます。NetBeansはそれを文句を言いjava ee api is missing on project classpathます。この問題をどのように解決しますか?

編集

これはNetBeansの問題ではなく、Mavenの問題です。

4

2 に答える 2

9

これは、私が Java 時代に直面した中で最も衰弱させる問題です。そして、これまでに見た中で最もばかげた回避策が続きます。

<dependency>
    <groupId>httpunit</groupId>
    <artifactId>httpunit</artifactId>
    <version>1.7</version>
    <scope>test</scope>
</dependency>

<dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-web-api</artifactId>
    <version>6.0</version>
    <scope>provided</scope>
</dependency>

はい、依存関係の宣言を並べ替え( 「理由」pom.xmlについてはこちらを参照)、最後にします。javaee-web-api

于 2011-09-29T22:28:11.160 に答える
0

これは、maven(またはnetbeans ...私は10年間netbeansを使用していません)が、ローカルリポジトリでそのアーティファクトをダウンロードまたは検索できなかったことを意味します。

提供されるスコープとは、ソースコードをコンパイルするためにjarが必要ですが、最終パッケージにjarをバンドルしないことを意味します。

于 2011-09-29T21:06:26.073 に答える