2016-07-15 11 views
0

私のmavenプロジェクトには2つのsrcパッケージといくつかの依存関係が含まれています。 私はそれを戦争としてパッケージ化し、libsのような依存関係をWEB-INF/libsに含めました。Maven warプラグインarchiveClassesでパッケージは除外

コンパイルされたすべてのプロジェクトクラスをcom.path.to.package.aから含む必要がありますが、com.path.to.package.bに含まれるコンパイル済みクラスも除外する必要があります。

私は同じよう<archiveClasses>オプションを使用することができます知っている:

<groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-war-plugin</artifactId> 
    <version>2.6</version> 
    <configuration> 
     <archiveClasses>true</archiveClasses> 
    </configuration> 
</plugin> 

これはlibsの内側に正しくジャープロジェクトを置きますが、明らかにそれはすべての.classファイルを保持します。

<packagingExcludes>または<warSourceExcludes>のようなオプションを使用して除外を実行しようとしましたが、それらには運がありません。

私は必要なものをjarフォームから除外するために、<archiveClasses>と組み合わせて使用​​できるオプションはありますか?

+0

パッケージcom.path.to.package.bのソースクラスはどこにありますか? – davidxxx

+0

クラスをパックから除外する理由は何ですか?意味を成さない?あなたが除外したいクラスはどんな種類ですか? – khmarbaise

+0

com.path.to.package.bタグの下で使用してみましたか?しかし、別のモジュールのパッケージを別々のモジュールに分けることは良い考えです。 –

答えて

0

それは私が探していたような解決策がまだ存在しない縫い目ので、私は迅速かつ汚い、以下の1になってしまった:不要なクラスは、彼らの前に削除され、この方法を行う

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <version>1.7</version> 
    <executions> 
     <execution> 
      <id>delete-unused-classes</id> 
      <phase>test</phase> 
      <goals> 
       <goal>run</goal> 
      </goals> 
      <configuration> 
       <tasks> 
        <delete includeemptydirs="true"> 
         <fileset dir="${project.build.outputDirectory}/com/path/to/pachage/a" /> 
        </delete> 
       </tasks> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

<archiveClasses>からパッケージ化されており、jar lib内には表示されません。

関連する問題