Java maven资源筛选跳过文件
我得到了一个Vaadin项目,其结构如下: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
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>