我有几个子项目的maven父项目。在部署时,我想执行一些复杂的scp任务。当我运行mvn deploy时,我有错误:
[INFO] Reactor Summary:
[INFO]
[INFO] Child project1 ............................... FAILURE [0.331s]
[INFO] Child project 2 .............................. SKIPPED
[INFO] Child project 3 .............................. SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.5:deploy
(default-deploy) on project Parent: Deployment failed: repository element
was not specified in the POM inside distributionManagement element or in -DaltDeploymentRepository=id::layout::url parameter -> [Help 1]
我读了问题Deployment issue with Maven Plugin它说我需要在settings.xml中定义存储库。但我没有任何存储库,我想在部署阶段做的就是在服务器上复制文件并执行其他工作的执行脚本。我想只在父项目中执行此脚本,并在子项中删除此阶段。 我没有和maven一起工作过,所以也许我只是错过了一些maven概念。
答案 0 :(得分:3)
如果您没有存储库(意思是:部署/项目存储库,而不是您必须拥有的本地),则不要运行{{1} },而是mvn deploy
。 Maven Release Plugin(默认绑定到 deploy 阶段)用于在项目存储库中安装工件,在源代码控制存储库中标记它,这样的东西。这意味着:您必须在主POM中定义存储库和源代码控制连接,以及mvn install
中存储库访问的凭据。
如果您想跳过某些项目(包含在settings.xml
中,对吗?),我认为您最好的选择是在每个配置文件中使用profiles内部不同的<modules>
部分。< / p>