我正在尝试使用Eclipse Luna调试我的Maven webapp项目以在Tomcat 8中启动它。不幸的是,在尝试将其部署到Tomcat时,资源过滤期间的构建时间戳没有得到解决。 Eclipse构建的WAR文件已解决,但它部署到Tomcat(通过" Run on Server"选项)并没有解决。
在我的pom.xml中,我得到了:
<properties>
<timestamp>${maven.build.timestamp}</timestamp>
</properties>
<build>
<finalName>rapid-installer</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
在属性文件中,我已经
了build.date=${timestamp}
答案 0 :(得分:5)
我的解决方案是将以下内容添加到我的pom.xml中,以便时间戳可用,使得应用程序在Tomcat启动时不会崩溃。
<profiles>
<profile>
<id>m2e</id>
<activation>
<property>
<name>m2e.version</name>
</property>
</activation>
<properties>
<maven.build.timestamp>2014-01-01</maven.build.timestamp>
</properties>
</profile>
</profiles>
现在,当应用程序通过&#34; Run on Server&#34;部署到Tomcat时在Eclipse中,它始终显示构建时间戳。有关为何需要执行此操作及其工作原理的详细信息:https://bugs.eclipse.org/bugs/show_bug.cgi?id=388874
答案 1 :(得分:1)
遗憾的是,正常。
使用eclispe WTP机制在Tomcat中部署应用程序可以完全绕过maven生命周期。一旦你开始使用战争叠加和maven提供的这种“奇特”的东西,这就会变得更加烦人。
到目前为止,唯一的解决方案是不使用eclipse WTP视图进行部署,而是使用maven cargo插件。