[英]Why isn't mvn resources:resources picking up buildNumber?
我有一個使用buildnumber-maven-plugin
的Maven項目。 如果我運行mvn validate
我看到它正在工作:
[INFO] --- buildnumber-maven-plugin:1.3:create (default) @ myproject ---
[INFO] Executing: /bin/sh -c cd /Users/rob/Workspace/myproject && git rev-parse --verify HEAD
[INFO] Storing buildNumber: 5d315d8d1a43c3289fbf114c379fa1a3d3787044 at timestamp: 1477059166424
但是,如果我運行mvn resources:resources
則過濾后的文件不會將其拾取:
[INFO] --- maven-resources-plugin:2.6:resources (default-cli) @ myproject ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
pom.xml
具有:
<build>
...
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>version.txt</include>
</includes>
</resource>
version.txt
具有:
${buildNumber}
但是在maven運行之后,不再進行過濾:
> cat target/classes/version.txt
${buildNumber}
pom.xml
的內部版本號配置:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.3</version>
<executions>
<execution>
<phase>validate</phase>
<goals><goal>create</goal></goals>
</execution>
我對Maven不夠了解。 運行資源“目標”是否也應該獲得buildNumber
屬性?
您執行的命令有所不同:
mvn validate
執行maven階段“ valdate”:表示之前的所有階段 (在本例中為無)
mvn resources:resources
是在資源插件上執行目標“ resources”的快捷方式。 實際上,它是執行的捷徑: org.apache.maven.plugins:maven-resources-plugin:3.0.1:resources
。 這些短名稱由maven解析,對於Apache名稱空間中的插件來說非常典型。
正如您在Maven生命周期頁面上看到的那樣,您可能會尋找的目標是:“ mvn process-resources
”。 該階段有一個默認的插件綁定到“ resources:resources
”,它將運行資源插件。 由於您執行一個階段,因此之前的所有階段都將運行,包括內部版本號插件。
“:”表示maven命令行的區別。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.