我正在使用Maven资源插件通过war文件中的过滤生成普通文件。我在文件夹src / main / webapp / app
中有带有变量的模板文件<build>
<plugins>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<phase>process-resources</phase>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/webapp/app</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
问题在于生成的文件位于WEB-INF / classes文件夹中,我需要将其放在战争根源的app文件夹中。 战争结构应该是
*.jsf
app/<generated_file>
WEB-INF/
我该怎么办?
答案 0 :(得分:1)
如果要在构建过程中将内容复制到另一个结构中,则必须添加一个copy-resources
目标,您可以指向一个自定义输出路径:
<configuration>
<outputDirectory>${basedir}/target/extra-resources</outputDirectory>
<resources>
<resource>
<directory>src/non-packaged-resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
可以在here in the documentation上找到它。
答案 1 :(得分:1)
有了评论,我终于可以找到解决方案。只需将outputDirectory参数设置为src / main / webapp / app,然后将模板放在src / main / webapp之外的其他位置。就我而言,我将其放在文件夹src / main / jnlp中。所以最后这就是解决方案..希望对其他人有帮助
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<phase>process-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/src/main/webapp/app</outputDirectory>
<resources>
<resource>
<directory>src/main/jnlp</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>