Maven2:戦争からディレクトリを除外
-
04-10-2019 - |
質問
私は試した これ 私の戦争ファイルからWhole Directory($ {badedir}/src/main/webapp/webscripts)を除外するために失敗しました。なにが問題ですか?
これはうまくいきません:
<configuration>
<webResources>
<resource>
<directory>${basedir}/src/main/webapp/webscripts</directory>
<excludes>
<exclude>**/*.*</exclude>
</excludes>
</resource>
</webResources>
</configuration>
これも:
<configuration>
<webResources>
<resource>
<directory>${basedir}/src/main/webapp</directory>
<excludes>
<exclude>**/webscripts</exclude>
</excludes>
</resource>
</webResources>
</configuration>
誰かが助けることができますか?
解決
どちらのソリューションも役に立たないでしょう。なぜなら、それらは追加のリソースを追加して、その後無効化するからです。 WebAppソースフォルダーは、リソースメカニズムなしでデフォルトでコピーされます。
その一部を非アクティブ化するメカニズムは <warSourceExcludes>
このようなパラメーター:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1</version>
<configuration>
<warSourceExcludes>webscripts/**</warSourceExcludes>
</configuration>
</plugin>
他のヒント
warsourceexcludes 名前が変更されたわけではないようです packagingexcludes.
warsourceexcludes: :Warsourcedirectoryのコンテンツをコピーするときに除外するトークンのコンマ分離リスト。
packagingexcludes: :包装前に戦争から除外するトークンのコンマ分離リスト。このオプションは、スキニーウォーユースケースの実装に使用できます。
大きな違いがあります packagingexcludes, 、トークンは最終戦争ファイルから完全に除外されます。と warsourceexcludes, 、トークンは、戦争ディレクトリを戦争ファイルにコピーするときに無視されます。その結果、トークンが WebAppDirectory たとえば、使用するときは無視されません warsourceexcludes しかし、使用するときになります packagingexcludes.
および機能する構文の例:
<warSourceExcludes>**/${project.artifactId}/**</warSourceExcludes>
バージョン2.1-alpha-1では、これは誤ってWarsourceExcludesと名付けられました。適切なパラメーターはです packagingexcludes
使用の例(戦争からweb-inf/ statics/ folderを除外):
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<warName>searchservice-web</warName>
<packagingExcludes>WEB-INF/statics/</packagingExcludes>
</configuration>
</plugin>
ソースファイルを削除するための注文私はmavenで以下の構成を使用しました
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<packagingExcludes>
eb-app/app/**,eb-app/node_modules/**,eb-app/public/**,eb-app/server/**,eb-app/tests/**,eb-app/tmp/**,eb-app/vendor/**,eb-app/*
</packagingExcludes>
</configuration>
</plugin>
一致できる2つのフォルダーを除外しなければならなかったシナリオがありました。 *scripts
そして、それらはリソースフォルダーにありました。最初の混乱は、除外価値をとして提供するかどうかでした src/main/resources/*scripts
またはとして WEB-INF/classes/*scripts
, 、すなわち、編集前またはポストコンパイル構造。
提供することが非常に重要でした /**
ディレクトリ全体が戦争ファイルから除外されるようにするため。私の場合、 *scripts/**
.
これが機能した最終的な構成です。
<packagingExcludes>WEB-INF/classes/*scripts/**</packagingExcludes>