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を使用していますが、スニペットは基本的にドキュメントと同じですか?
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]のフェーズにフックされたすべてのプラグインの目標を順番に呼び出すため、明示的に呼び出す必要はありません。
Webリソースは、クラスパスに配置する必要があるJavaリソースと同じではありません。Webリソースはwarプラグインを介して処理され、src\main\webapp\WEB-INF\
に配置する必要があります。 pom.xmlで追加の構成を行わなくても自動的に動作します
この構成は、プラグイン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>