Maven: как получить военный пакет с ресурсами, скопированными в WEB-INF? - PullRequest
22 голосов
/ 21 января 2011

когда я создаю пакет war с maven, файлы и каталоги в каталоге "src / main / resources" копируются в / WEB-INF / classes вместо / WEB-INF.Как я могу скопировать их в / WEB-INF?

спасибо, rand

ОБНОВЛЕНИЕ: в моем pom сейчас я использую это:

<plugin>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.4.3</version>
            <executions>
                <execution>
                    <id>copy-resources</id>
                    <!-- here the phase you need -->
                    <phase>war</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>myapp/target/WEB-INF</outputDirectory>
                        <resources>
                            <resource>
                                <directory>src/main/resources</directory>
                                <filtering>true</filtering>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>

и запускаю mvnс:

mvn -Dmaven.test.skip = true чистые ресурсы пакета: copy-resources

но я получил:

[INFO] One or more required plugin parameters are invalid/missing for 'resources:copy-resources'

[0] Inside the definition for plugin 'maven-resources-plugin' specify the following:

<configuration>
  ...
  <outputDirectory>VALUE</outputDirectory>
</configuration>.

[1] Inside the definition for plugin 'maven-resources-plugin' specify the following:

<configuration>
  ...
  <resources>VALUE</resources>
</configuration>.

Iя использую Maven 2.2 и фрагмент в основном то же самое из документации, любая идея?

Ответы [ 3 ]

28 голосов
/ 21 января 2011

либо настройте параметр outputDirectory плагина resources:resources, либо поместите ваши файлы в каталог src/main/webapp/WEB-INF/. плагин ресурсов

РЕДАКТИРОВАТЬ:

Эта конфигурация работает для меня:

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.4.2</version>
    <executions>
      <execution>
        <id>default-copy-resources</id>
        <phase>process-resources</phase>
        <goals>
          <goal>copy-resources</goal>
        </goals>
        <configuration>
          <overwrite>true</overwrite>
          <outputDirectory>${project.build.directory}/${project.artifactId}-${project.version}/WEB-INF/</outputDirectory>
          <resources>
            <resource>
              <directory>${project.basedir}/src/main/resources</directory>
            </resource>
          </resources>
        </configuration>
      </execution>
    </executions>
  </plugin>

вы можете запустить этап в виде somePhase или цельsomePlugin:someGoal.Фазовые вызовы будут вызывать все цели плагинов, подключенные к фазам в интервале [validate, phase] по порядку, поэтому нет необходимости явно вызывать их.

26 голосов
/ 26 августа 2011

Веб-ресурсы не совпадают с java-ресурсами, которые следует размещать в пути к классам.Веб-ресурсы обрабатываются с помощью плагина war и должны быть помещены в src\main\webapp\WEB-INF\.В этом случае он будет работать автоматически без какой-либо дополнительной настройки в pom.xml

0 голосов
/ 26 марта 2018

Эта конфигурация работает добавить плагин pom.xml

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
    <configuration>
        <source>${jdk.version}</source>
        <target>${jdk.version}</target>
    </configuration>
</plugin>

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.3</version>

    <configuration>

        <webResources>
              <!--copy resource file location-->
            <resource>
                <directory>${project.build.directory}/classes</directory>
            </resource>
        </webResources>
        <!--location for add file-->
        <webappDirectory>${project.build.directory}/${project.build.finalName}</webappDirectory>
    </configuration>
</plugin>
...