web-dev-qa-db-ja.com

Maven:WEB-INFにコピーされたリソースを含むwarパッケージを取得する方法は?

mavenでwarパッケージを作成すると、ディレクトリ「src/main/resources」の下のファイルとディレクトリが/ WEB-INFではなく/ WEB-INF/classesにコピーされます。/WEB-INFにコピーするにはどうすればよいですか?

おかげで、ランド

更新:私の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>.

私はmaven 2.2を使用していますが、スニペットは基本的にドキュメントと同じですか?

23
Randomize

resources:resourcesプラグインのoutputDirectoryパラメーターを設定するか、ファイルを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]のフェーズにフックされたすべてのプラグインの目標を順番に呼び出すため、明示的に呼び出す必要はありません。

28
coubeatczech

Webリソースは、クラスパスに配置する必要があるJavaリソースと同じではありません。Webリソースはwarプラグインを介して処理され、src\main\webapp\WEB-INF\に配置する必要があります。 pom.xmlで追加の構成を行わなくても自動的に動作します

27
kan

この構成は、プラグイン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>
0
Mahendra Sri