使用此命令,我将一个文件复制出神器:
mvn org.apache.maven.plugins:maven-dependency-plugin:2.10:copy
-Dartifact=com.example:blah:RELEASE:war
-DoutputDirectory=/tmp -Dmdep.useBaseVersion=true
我应该在我的tmp dir中得到blah-1.2.3.war。
但是要在shell脚本中处理生成的文件,我当然不能使用RELEASE。我最终找不到blah-RELEASE.war。我正在寻找一种优雅的方法来从artifactory或nexus中推断出这个版本字符串,这样我就可以使用它的绝对文件名来操作生成的文件,没有通配符,也无需使用ls或find查询/ tmp。
此刻,我为战争取了pom,然后grep / sed版本。在詹金斯做这样的事情
mvn org.apache.maven.plugins:maven-dependency-plugin:2.10:copy \
-DoutputDirectory=${WORKSPACE} \
-Dartifact=com.example:blah:RELEASE:pom \
-Dmdep.stripVersion=true
VERSION=$( grep -A 1 "<artifactId>blah</artifactId>" \
${WORKSPACE}/blah.pom | sed -nr 's|.*<version>(.*)</version>.*|\1|p' )