为什么 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 运行s 之后,没有过滤:
> 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 了解不够。 运行 资源 "goal" 不应该也得到 buildNumber
属性 吗?
您执行的命令有所不同:
mvn validate
执行 Maven 阶段 "valdate":意思是之前的 all phases(在本例中为 none)
mvn resources:resources
是在 resources plugin 上执行目标 "resources" 的捷径。实际上它是执行的快捷方式:org.apache.maven.plugins:maven-resources-plugin:3.0.1:resources
。这些短名称由 maven 解析,对于 Apache 命名空间中的插件非常典型。
正如您在 maven life-cycle page 上看到的,您可能寻找的目标是:“mvn process-resources
”。该阶段有一个默认插件绑定到“resources:resources
”,这将 运行 资源插件。由于您执行了一个阶段,在此之前的所有阶段也将是 运行,包括内部版本号插件。
“:”表示maven命令行的区别。
我有一个使用 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 运行s 之后,没有过滤:
> 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 了解不够。 运行 资源 "goal" 不应该也得到 buildNumber
属性 吗?
您执行的命令有所不同:
mvn validate
执行 Maven 阶段 "valdate":意思是之前的 all phases(在本例中为 none)
mvn resources:resources
是在 resources plugin 上执行目标 "resources" 的捷径。实际上它是执行的快捷方式:org.apache.maven.plugins:maven-resources-plugin:3.0.1:resources
。这些短名称由 maven 解析,对于 Apache 命名空间中的插件非常典型。
正如您在 maven life-cycle page 上看到的,您可能寻找的目标是:“mvn process-resources
”。该阶段有一个默认插件绑定到“resources:resources
”,这将 运行 资源插件。由于您执行了一个阶段,在此之前的所有阶段也将是 运行,包括内部版本号插件。
“:”表示maven命令行的区别。