我得到了一个具有以下结构的Vaadin项目:
Project-Root
src
main
resources
properties.json
META-INF
persistance.xml
webapp
WEB-INF
classes
hibernate-dashboard.cfg.xml
quartz.properties
到目前为止,我从我的IDE(IntelliJ)构建了我的项目
mvn vaadin:compile vaadin:compile-theme -P development
然后用“构建”来包装战争-
我的资源筛选如下:
..
<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>
问题:当我试图用maven构建整个项目时
mvn clean package -P development
webapp/WEB-INF/类下的资源被跳过,它们在目标/Project/WEB-INF/类目录中,但变量是${...}(hibernate-dashboard.cfg.xml和quartz.properties)
正确过滤剩余资源(properties.json和persistance.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>
到maven war插件,现在我得到了一个正确的打包war文件。
这里真正的问题是,你正在做一些非常奇怪的事情,可能应该选择改变事情,以便以不同的方式做事。目录:
src/main/webapp/WEB-INF/classes
不应该存在--您不应该在该路径上有classes目录。如果要将筛选后的文件放置到目标//WEB-INF/classes然后将这些文件放入src/main/resources中,maven会将它们复制到相应的目标目录,如果您仔细询问,它会对它们进行过滤(在复制时使用当前上下文中的值填充模板)。
你唯一真正需要的是:
<resources>
<resource>
<directory>src/main/resources/</directory>
<filtering>true</filtering>
</resource>
</resources>
如果你认为你需要一个类目录,那么你可能犯了一个错误,解决这个问题的最快方法是不再做错误的事情,而不是尝试以这种方式配置maven。
我想将构建信息写入属性文件。我找到了Maven资源过滤插件。这就是我的pom相关部分的样子: 如果start构建成功,但我的文件下src/main/资源将不包含构建信息。 我的属性文件如下所示: 我做错了什么?非常感谢。
想法? 谢了。
我正在尝试使用maven-telte-resource-plugin在多模块maven项目中跨模块共享许多资源。不幸的是,共享的二进制资源在捆绑期间被损坏,大概是通过过滤。 我相信,由于从本地存储库中提取共享资源jar时包含损坏的二进制文件,因此在这一阶段会发生损坏。 是否有任何关闭过滤maven-远程资源插件? 目前,我的共享资源模块中的pom看起来像
我正在尝试使用maven配置文件实例化hibernate配置文件。我的配置文件位于下,在pom文件中,我标记了该文件夹以用于资源过滤。有趣的是,我可以从属性文件中加载相同的属性,而hibernate在解析配置文件时抛出异常。这是我正在使用的代码示例。 POM-资源筛选 文件结构 资源hibernate.cfg.xml
我正在尝试使用来自pom中的配置文件的Maven资源过滤(maven-resources-plugin)将一些俄语文本发送到*. Property文件。所以,当我发送英文符号时,它工作得很好,但是当我尝试从参数(位于属性文件中)中获取俄语值时-编码中断。IntelliJ中所有文件的项目编码设置为UTF-8。在过滤文件中,俄语文本显示正常。但是当我使用getProperty方法从文件中获取它时,它会
我正在使用Maven 2.2.1,为了构建我的项目,我使用了以下命令 但是,构建失败了,说它找不到一个工件。然而,当我使用: 一切正常。 到目前为止,我一直认为这两个命令是等效的。然而,这个链接似乎表明,Dmaven。测验skip=true也会跳过编译测试用例。 然而,这仍然不能向我解释为什么一个命令有效,而另一个命令无效。如果有人能向我解释这一点,我将不胜感激。