2011-03-02 13 views
1

耳のlibフォルダからアーティファクトを削除するにはどうすればよいですか?例:activation.jar。Mavenでアーティファクトを耳のlibフォルダから削除するにはどうしたらいいですか?

私は約Excluding a module(ちょうどjarModuleためwebModuleを変更)が、このエラーで成功せずespecificationに従ってみました:依存関係が定義されている場所範囲としてArtifact[jar:javax.activation:activation] is not a dependency of the project.

答えて

0

他にも述べたように、providedをスコープとして使用する必要があります。削除する必要があるjarがプロジェクトの依存関係ではない場合(つまり、transientの依存関係)、それらをビルドに持ち込むものから除外する必要があります。あなたが実際にコンパイル時にこれらのクラスが必要な場合は、あなたがする必要がありますprovidedとしてそれらを再含める:すべての

<dependency> 
     <!-- this dependency has javax.activation as a dependency --> 
     <groupId>blah.groupId</groupId> 
     <artifactId>blah.artifactId</artifactId> 
     <version>blah.version</version> 
     <exclusions> 
      <exclusion> 
       <groupId>javax.activation</groupId> 
       <artifactId>activation</artifactId> 
      <exclusion> 
     </exclusions> 
    </dependency> 

    <!-- only necessary if this jar is needed at compile-time --> 
    <dependency> 
     <groupId>javax.activation</groupId> 
     <artifactId>activation</artifactId> 
     <version>1.1.1</version> 
     <scope>provided</scope> 
    </dependency> 
+0

まず、答えてくれてありがとう、私はそれだけで使用なしを使用して得たあなたはwhoteとして理由: "削除する必要があるjarファイルがプロジェクトの依存関係でない場合(つまり、一時的な依存関係の場合)、それらを除外する必要があります..." – ricardo

+0

はい、 'provide'として再インポートする必要があります実際にコンパイル時にその依存関係のクラスが必要になります。それ以外の場合は完全に放置してください。 –

+0

大丈夫です!今理解しました:) – ricardo

1

使用provided

<dependency> 
    <groupId>javax.activation</groupId> 
    <artifactId>activation</artifactId> 
    <version>1.1.1</version> 
    <scope>provided</scope> 
</dependency> 
1

scopeprovidedに設定します。 Mavenはコンパイル時クラスパスに依存関係を追加しますが、最終WARには追加しません。

関連する問題