2016-06-01 7 views
0

私はmavenプロジェクトに取り組んでおり、私はwarファイルから依存関係を除外する必要があります。以下は私の問題の詳細です。パッケージ化が動作しません

私は最終warに存在しないと、このプロジェクトをしたいと思います

<dependency> 
     <groupId>com.myCompany</groupId> 
     <artifactId>artifactB</artifactId> 
     <version>0.0.1-SNAPSHOT</version> 
</dependency> 

に依存warパッケージとプロジェクトAを持っています。私はartifactBの推移依存性を必要とするので、私は

<scope>provided</scope> 

を使用することはできません。私は、次の命令で、パッケージの段階でartifactBを除外しようとしている:

<packagingExcludes>WEB-INF/lib/artifactB.jar</packagingExcludes> 

が、私はmvn packageを実行したとき、私は私のwarjarを見つけておきます。私は間違って何をしていますか?

+0

artifactBに指定されたバージョンが存在し、存在しないartifactB.jarが指定されている可能性があります。 ' WEB-INF/lib/artifactB * .jar'を試してください。アーティファクトBの接尾辞として*を追加しました。 –

+0

私は WEB-INF/lib/artifactB * .jarを追加しましたが、まだ動作しません – Skizzo

+0

なぜ他のプロジェクトの依存関係としてwarを使用していますか? WARはライブラリではなくWebアーカイブですので、これはちょっと変です。たぶんあなたは別のjarプロジェクトにあなたの共有コードを移動することができますか? –

答えて

0

<plugin> 
    <artifactId>maven-war-plugin</artifactId> 
    <version>2.6</version> 
    <configuration> 
     <warName>your-war-name</warName> 
     <webResources> 
     <resource> 
      <!-- this is relative to the pom.xml directory --> 
      <directory>${basedir}/src/main/webapp/WEB-INF/lib</directory> 
      <excludes> 
       <exclude>artifactB*.jar</exclude> 
      </excludes> 
     </resource> 
     </webResources> 
    </configuration> 
</plugin> 
0

私は次のように私の問題を解決しました:

<plugin> 
<artifactId>maven-war-plugin</artifactId> 
<version>2.3</version> 
<configuration> 
    <warSourceDirectory>${basedir}/WebRoot</warSourceDirectory> 
    <packagingExcludes>WEB-INF/lib/artifactB*</packagingExcludes> 
</configuration> 

私も私だけではない、一過で、内蔵され、戦争のWEB-INF/libにこれを見ることができます指摘warディレクトリ(除外されたjarファイルが含まれています(除外されていても除外されていても、この問題を見ると非常に混乱します)。

関連する問題