maven.build.timestamp 未在部署到 Tomcat 的 Maven Eclipse build 中解析



我正在尝试使用 Eclipse Luna 调试我的 Maven webapp 项目,以便在 Tomcat 8 中启动它。遗憾的是,在尝试将构建时间戳部署到 Tomcat 时,在资源筛选期间无法解析构建时间戳。Eclipse构建的WAR文件已经解决了这个问题,但它部署到Tomcat的内容(通过"在服务器上运行"选项)却没有。

在我的绒球.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}

我的解决方案是将以下内容添加到我的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>

现在,当应用程序通过 Eclipse 中的"在服务器上运行"部署到 Tomcat 时,它始终显示该构建时间戳。有关为什么需要这样做以及它是如何工作的详细说明:https://bugs.eclipse.org/bugs/show_bug.cgi?id=388874

不幸的是

,这很正常

使用 eclispe WTP 机制在 Tomcat 中部署应用程序完全绕过了 maven 生命周期。一旦您开始使用战争叠加层和 maven 提供的此类"花哨"的东西,这就会变得更加烦人。

到目前为止,唯一的解决方案是不要使用 eclipse WTP 视图进行部署,而是使用 maven cargo 插件。

相关内容

  • 没有找到相关文章

最新更新