生成的文件放在错误的位置

时间:2019-01-16 19:35:46

标签: maven maven-resources-plugin

我正在使用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/

我该怎么办?

2 个答案:

答案 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>