this を試みて、ディレクトリ全体($ {basedir}/src/main/webapp/webscripts)をWARファイルから除外しましたが、失敗しました。なにが問題ですか?
これは機能しません:
<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:パッケージ化の前にWARから除外するトークンのカンマ区切りリスト。このオプションは、スキニーWARユースケースの実装に使用できます。
大きな違いがあります:packagingExcludesを使用すると、トークンは最終的なwarファイルから完全に除外されます。 warSourceExcludesを使用すると、warディレクトリをwarファイルにコピーするときにトークンが無視されます。その結果、トークンがwebappDirectoryに存在する場合、warSourceExcludesを使用する場合は無視されませんが、packagingExcludesを使用する場合は無視されます。
そして、動作する構文の例:
<warSourceExcludes>**/${project.artifactId}/**</warSourceExcludes>
バージョン2.1-alpha-1では、これは誤ってwarSourceExcludesと名付けられました。正しいパラメーターは packagingExcludes です
使用例(WARからWEB-INF/statics /フォルダーを除く):
<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>
*scripts
に一致する可能性のある2つのフォルダーを除外する必要があり、それらがリソースフォルダーにあったシナリオがありました。最初の混乱は、除外値をsrc/main/resources/*scripts
として提供するかWEB-INF/classes/*scripts
として提供するか、つまりコンパイル前またはコンパイル後の構造です。
ディレクトリ全体をwarファイルから除外するには、/**
を提供することが非常に重要でした。私の場合、*scripts/**
。
これが機能する最終構成です。
<packagingExcludes>WEB-INF/classes/*scripts/**</packagingExcludes>