可以在maven发布插件准备目标中使用配置文件吗?

时间:2018-01-02 09:06:15

标签: java maven maven-3

我有一个项目,我在其中使用maven-release-plugin进行配置。 Configration就是这样:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-release-plugin</artifactId>
    <version>2.5.3</version>
    <configuration>
       <autoVersionSubmodules>true</autoVersionSubmodules>
       <useReleaseProfile>true</useReleaseProfile>
       <releaseProfiles>profile1,profile2</releaseProfiles>
       <preparationGoals>
           clean verify -Pprofile3,profile4
       </preparationGoals>
     </configuration>
</plugin>

问题是我在prepareGoals中使用了配置文件但是我一直在构建时遇到错误。 错误是这样的:

[INFO] [ERROR] Unknown lifecycle phase "profile4". 
You must specify a valid lifecycle phase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>. 
Available lifecycle phases are: validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy, pre-clean, clean, post-clean, pre-site, site, post-site, site-deploy.

正如您所看到的,我使用了maven-release-plugin的2.5.3版本。 我以前使用的是maven-release-plugin的2.2.2版,它运行得很好。

使用maven-release-plugin:2.5.3当我从命令行调用mvn clean verify -Pprofile3,profile4时它工作得很好。

2 个答案:

答案 0 :(得分:1)

您可能需要使用arguments参数来指定配置文件(但我还没有尝试过)。见here。如果在发布运行期间需要不同的配置文件,则可能需要为不同的目标提供单独的配置。

答案 1 :(得分:0)

Preparation Goals Documentation中,特别是“ 以空格分隔。”。在这里,术语”-Pprofile3,profile4” 被解释为要执行的另一个目标。该位置不支持传递自定义参数。另请注意,清理和验证已在 release:prepare 中运行,因此您将运行两次。

从您的问题下面的评论中;由于您已经具有完成所需任务的插件,因此请将该插件直接作为准备目标来运行。