我这里有三个问题。首先,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?
由于
答案 0 :(得分:2)
pom.xml
只是另一个XML文件,与其他文件没有区别。它遵循相同的XML标准。 现在针对问题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