我目前正在用maven 3.1.1和maven war插件2.4建立一个web项目(http://maven.apache.org/plugins/maven-war-plugin/war-mojo.html). 特别是,我正在尝试用maven war插件复制和过滤资源,这种方式我在过去已经做过了,而且很有效。以下是相关pom配置:
WAR插件配置
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
...
<webResources>
<resource>
<directory>src/main/webapp/META-INF</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
<targetPath>META-INF</targetPath>
</resource>
...
</configuration>
</plugin>
...
激活的配置文件定义:
...
<profiles>
<profile>
<id>dummyDev</id>
<build>
<filters>
<filter>filters/development.properties</filter>
</filters>
</build>
</profile>
...
META-INF/上下文。xml:
<?xml version="1.0" encoding="UTF-8"?>
<Context reloadable="${tomcat.context.reloadable}">
</Context>
最后是“development.properties”:
tomcat.context.reloadable=true
context.xml被复制到WAR中,但没有被过滤。如果我尝试直接在配置文件中写入属性,它会起作用(即不引用属性文件):只有当我引用thep属性文件时,它才会起作用。读取属性文件似乎有问题。此外,“打包”后,maven不会在控制台中告诉我找不到属性文件(所以maven找到了文件)。
最后,我试着用maven war插件2.1.1版(和2.3版)实现了这项工作,而且效果很好:我尝试了更多次,只是更改了maven war插件的版本,所以我很确定问题在于此。
我错过什么了吗?这是maven war插件的已知bug吗?我是否试图以正确的方式获得结果(过滤该文件)?谢谢
好吧,我搜索了maven war插件jira,发现这实际上是一个错误,在2.4版中引入(更多http://jira.codehaus.org/browse/MWAR-301)。
为了方便起见,我引用了jira问题中指出的解决方法:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
...
<filters>
<filter>${project.basedir}/src/main/filters/my-filter.properties</filter>
</filters>
</configuration>
</plugin>
在我的皮肤上试过,效果很好。
无论如何,我注意到,如果您在这个位置指定一个属性源文件(这是pom级别的war插件声明,而不是概要文件级别),它将始终被读取,即对于您指定的每个构建概要文件。除非您为每个构建概要文件重新声明war插件,并在每个概要文件中指定一组不同的属性文件(这里指出的是一个非常糟糕的解决方案,只是为了说明这是错误的,而且为了完整性,显然是IMHO),否则此解决方案仅限于无论指定了什么构建概要文件,都必须始终读取给定属性文件的情况。
我尝试DateTimeFormatter将输入日期解析为。我使用了下面的代码 无法解析日期 闰年也是失败的。
工具:Win7、Launch4J3.5、简单的Hello world Java控制台应用程序(绑定在JAR文件中) 大家好, 我有一个基本的JAVA控制台应用程序,它不请求任何输入,只是一个打开控制台窗口并显示Hello World文本的简单应用程序。 包装程序清单:C:\launch4j\manifest\uac.exe.manifest(也尝试保留此空白) 其余的都是默认的。
例如,当我进入登录页面时...sessionCreated-将一个会话添加到计数器:1 然后,当我点击log out按钮时,会话计数减少了1(这很好),但紧接着会话计数增加了1(不是预期的)。 例如,当我按下注销按钮时...sessionDestroyed-从计数器0中扣除一个会话sessionCreated-将一个会话添加到计数器1中 我再次需要帮助来理解请。 这是我的Spring安全设置...
我正在尝试用Java编写一个进程,该进程并发执行一系列任务,等待任务完成,然后将整个进程标记为完成。每个任务都有自己的信息,包括单个任务何时完成。我将使用ExecutorService作为流程,并将流程的本质归纳如下: 每个MyRunnable对象都有一个run方法,该方法进行webservice调用,然后将调用的结果写入数据库,包括调用完成的时间。ComplethisProcess方法只是将整个
我正在尝试编写一个函数,如果< code > selection _ Match = = ' No Match ' then < code > DNB = score _ difference 0.02 然而,我返回相同的df,没有任何修改 虽然它应该回来 Lorem ipsum dolor sit amet,consecetur adipiscing elit,sed do eiusmod te
我在本地安装了java11,我正在使用maven编译器插件将其源/目标设置为1.8,在我的代码中我正在使用