Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java maven资源筛选跳过文件_Java_Maven - Fatal编程技术网

Java maven资源筛选跳过文件

Java maven资源筛选跳过文件,java,maven,Java,Maven,我得到了一个Vaadin项目,其结构如下: Project-Root src main resources properties.json META-INF persistance.xml webapp WEB-INF classes hibernate-dashboard.cfg.xml quartz.properties 到目前为止,我是从IDE(Inte

我得到了一个Vaadin项目,其结构如下:

Project-Root
  src
    main
    resources
      properties.json
      META-INF
        persistance.xml
    webapp
      WEB-INF
        classes
          hibernate-dashboard.cfg.xml
          quartz.properties
到目前为止,我是从IDE(IntelliJ)构建项目的

然后用“构建”->“构建工件…”打包战争并部署战争

我的资源筛选如下所示:

..
<build>
 <resources>
     <resource>
         <directory>src/main/webapp/WEB-INF/classes/</directory>
         <filtering>true</filtering>
     </resource>
     <resource>
         <directory>src/main/resources/</directory>
         <filtering>true</filtering>
     </resource>
     <resource>
         <directory>src/main/resources/META-INF</directory>
         <filtering>true</filtering>
     </resource>
 </resources>
 <plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-resources-plugin</artifactId>
     <version>2.6</version>
     <configuration>
         <encoding>${project.encoding}</encoding>
     </configuration>
 </plugin>
将跳过webapp/WEB-INF/classes下的资源,它们位于target/Project/WEB-INF/classes目录中,但变量为${..}(hibernate-dashboard.cfg.xml和quartz.properties)

剩余的资源(properties.json和persistence.xml)得到正确过滤


问题:我如何筛选所有资源并使用maven构建/打包我的项目?

maven只处理
src/main/resources中的文件,所以我添加了

<configuration>
  <webResources>
      <resource>
          <directory>src/main/webapp/WEB-INF/classes</directory>
          <targetPath>WEB-INF/classes</targetPath>
          <filtering>true</filtering>
      </resource>
  </webResources>
</configuration>

src/main/webapp/WEB-INF/classes
WEB-INF/课程
真的

到maven war插件,现在我得到了一个正确的打包war文件。

这里真正的问题是,您正在做一些非常奇怪的事情,可能应该选择改变一些事情,以便以不同的方式来做事情。目录:

src/main/webapp/WEB-INF/classes
不应该存在--在该路径上不应该有classes目录。如果您希望将筛选后的文件放入
target/../WEB-INF/classes
中,然后将这些文件放入
src/main/resources
中,maven将它们复制到相应的目标目录中,如果您仔细询问,它将对它们进行筛选(在复制时使用当前上下文中的值填充模板)

你唯一真正需要的是:

<resources>
    <resource>
        <directory>src/main/resources/</directory>
        <filtering>true</filtering>
    </resource>
</resources>

src/main/resources/
真的

如果你认为你需要一个classes目录,那么你可能犯了一个错误,解决这个问题的最快方法就是不再做错误的事情,而不是试图以这种方式配置maven。

有什么问题/问题?您将maven资源插件的执行绑定到的目标是什么?@NicoVanBelle我得到的唯一目标是在vaadin maven插件下(更新WidgeSet和compile,尝试添加资源tho)。Edwin I更新了这个问题,使其更加清晰。默认情况下,Maven使用
src/main/resources
。但是您正确地配置了资源插件,所以它会拾取这些文件;很抱歉,我认为您的回答不正确,而且只是顺便说一句(您将过滤从
maven resources plugin
移动到
maven war plugin
)谢谢您的澄清。我不知道。我移动了文件,它正在按预期工作。
src/main/webapp/WEB-INF/classes
<resources>
    <resource>
        <directory>src/main/resources/</directory>
        <filtering>true</filtering>
    </resource>
</resources>