46

ディレクトリ全体($ {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>

誰か助けてもらえますか?

4

5 に答える 5

92

どちらのソリューションも、リソースを追加して非アクティブ化するため、役に立ちません。webappソースフォルダーは、リソースメカニズムなしで、デフォルトでコピーされます。

その一部を非アクティブ化するメカニズムは、次の<warSourceExcludes>ようなパラメータを介して行われます。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.1</version>
    <configuration>
        <warSourceExcludes>webscripts/**</warSourceExcludes>
    </configuration>
</plugin>
于 2010-09-20T10:12:23.007 に答える
32

warSourceExcludesは単にpackagingExcludesに名前が変更されたのではないようです。

warSourceExcludes:warSourceDirectoryのコンテンツをコピーするときに除外するトークンのコンマ区切りリスト。

packagesExcludes:パッケージ化する前にWARから除外するトークンのコンマ区切りリスト。このオプションは、スキニーWARのユースケースを実装するために使用できます。

大きな違いがあります。packagingExcludesを使用すると、トークンは最終的なwarファイルから完全に除外されます。warSourceExcludesを使用すると、warディレクトリをwarファイルにコピーするときにトークンが無視されます。その結果、たとえばトークンがwebappDirectoryに存在する場合、 warSourceExcludesを使用する場合は無視されませんが、packagingExcludesを使用する場合は無視されます。

そして、実用的な構文例:

<warSourceExcludes>**/${project.artifactId}/**</warSourceExcludes>
于 2012-01-24T03:57:42.880 に答える
7

バージョン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>
于 2011-06-09T11:04:48.297 に答える
5

プロジェクト構造

ソースファイルを削除するために、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>
于 2018-04-13T06:05:53.157 に答える
1

一致する可能性のある2つのフォルダーを除外する必要が*scriptsあり、それらがリソースフォルダーにあるというシナリオがありました。最初の混乱は、除外値をassrc/main/resources/*scriptsまたはasとして提供するかどうかWEB-INF/classes/*scripts、つまりコンパイル前またはコンパイル後の構造でした。

/**ディレクトリ全体をwarファイルから除外するために提供することは非常に重要でした。私の場合、*scripts/**

動作した最終構成は次のとおりです。

    <packagingExcludes>WEB-INF/classes/*scripts/**</packagingExcludes>
于 2014-12-11T09:50:38.197 に答える