簡體   English   中英

為什么mvn resources:resources沒有選擇buildNumber?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM