如何使用pom.xml备份文件?

时间:2011-06-08 02:44:42

标签: xml maven tags

我这里有三个问题。首先,maven的pom.xml与其他xml文件有什么区别吗?

其次,如果我想通过脚本重命名与pom.xml相同的目录中的文件,我可以在pom.xml中进行吗?如果可能的话,我应该怎么做?

最后,如何在pom.xml中获取当前时间?

事实上,我想要实现的是我希望通过在我mvn打包之前附加时间戳来备份当前包(.war)。我希望整个过程由pom.xml自动化,而不是手动处理它。

你好,

我找到了获取时间戳的方法,它会起作用吗?

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactID>buildnumber-maven-plugin</artifactId>
  <execution>
  <phrase>package</phrase>
  <configuration>
    <format>{0, date, yyyy-MM-dd HH:mm:ss}</format>
    <items>timestamp</items>  
  </configuration>
  <execution>
</plugin>
它会起作用吗?如果它工作,我怎么能获得时间戳变量? $ items或$ timestamp?

由于

2 个答案:

答案 0 :(得分:2)

  1. Maven pom.xml只是另一个XML文件,与其他文件没有区别。它遵循相同的XML标准。
  2. 现在针对问题2和问题3,首先,当您运行mvn clean时,它将刷新所有文件,包括目标文件夹中的war

    您可以运行ANT任务来重命名和备份当前的战争,但在清理之前无法执行。 我建议你采用以下方法:

    • maven-antrun-plugin作为package目标的一部分运行。
    • ANT目标中,重命名并备份当前打包的战争。

    <强>替代地
    我的建议是:在WAR pom.xml 中,使用当前时间戳和所需版本指定<version>元素。这样,每个war都会被复制到maven本地存储库中的不同目录中。

    PS:根据我的知识,您无法在maven中生成时间戳。将其传递给一些外部变量

答案 1 :(得分:1)

也许你应该为你的问题设置上下文以获得更好的答案。无论如何,这里也是。

  • pom.xml是一个xml文件,有自己的schema。因此它与其他 xml文件不同。

  • 有几种方法可以使用maven重命名文件。 This SO discussion提供了选项。其中一个如下:

基本上,你会有一个pom,其条目类似于this example中的条目(外部build.xml)。您的ant build.xml会有与此类似的条目:

<?xml version="1.0"?>
<project name="dummy">
    ...
    <target name="rename">
        <move file="file.orig" tofile="file.moved"/>
    </target>
    ...
</project>
  • 您可以使用特殊的maven变量作为记录here的时间戳。有关如何使用它,请参阅此SO discussion

    maven.build.timestamp表示构建开始的时间戳。自Maven 2.1.0-M1