5

m2e プラグインを使用した Eclipse クラスパスに問題があります。ワークスペース内の他のプロジェクトに依存するプロジェクトがあります。これらの依存関係を、スコープが提供された Maven 依存関係として追加しました。スコープが次のことを行うことを期待しています: コンパイル用の依存関係を提供しますが、ランタイム クラスパス用には除外します。実行時に、これらのクラスはフォルダー内の jar からロードする必要があるためです。

しかし、Eclipse クラスパスには、プロジェクト pom で提供したすべての依存関係が含まれています。Eclipse は提供されたスコープを無視しているようです。それらを実行時のクラスパスから除外する方法はありますか?

よろしく

4

3 に答える 3

1

依存関係を「コンパイル用に提供するがランタイム クラスパスから除外する」必要がある場合は、Maven がデフォルトで使用する「コンパイル」スコープではなく、「提供」依存関係スコープ(Maven 用語) を使用する必要があります。

于 2016-01-25T17:17:05.047 に答える
0

私はmaven-war-pluginバージョン2.2で同じ問題に直面しました。maven-war-pluginバージョンを使用してください。2.3問題は、少なくともmvnpackageコマンドで解消されました。

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.3</version>

            <configuration>
                <webxml>WebContent/WEB-INF/web.xml</webxml>
                <packagingExcludes>jsp-api-6.0.36.jar,el-api-6.0.36.jar,servlet-api-6.0.36.jar</packagingExcludes>              

            </configuration>
        </plugin>
于 2013-02-04T06:10:21.730 に答える
0

m2e はここで適切に機能しています。「ランタイム」の意味を誤解していると思います。実際、プロジェクトはコンパイル時と実行時の両方で他のプロジェクトに依存しており、Maven でビルドすると、POM にそれが反映されます。依存関係自体を提供するアプリケーション サーバーなどにプロジェクトを展開する予定がある場合にのみ、スコープ 'provided' を使用します。

于 2012-04-27T15:01:34.237 に答える