2011-10-27 192 views
3

我有几个子项目的maven父项目。在部署中,我想执行一些复杂的scp任务。当我运行MVN部署我有错误:从父项目部署Maven

[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的概念。

回答

3

如果没有库(意为:部署/项目库,不当地,你必须有),然后不要运行mvn deploy,而是mvn install。 Maven Release Plugin(默认情况下,绑定到部署阶段)用于在工程存储库中安装工件,并在源代码控制存储库中标记它,类似的东西。这意味着:您必须在主POM中定义存储库和源控制连接,并且可能需要在settings.xml中为您的存储库访问凭证。

如果你想跳过某些项目(包括为<modules>,对吧?),我想你最好的选择是使用profiles不同<modules>段里的每一个轮廓。