在Maven POM中禁用distributionManagement

时间:2016-09-01 12:50:43

标签: java maven tomcat liferay maven-deploy-plugin

我正在尝试使用maven在我的Liferay portlet上运行User.last.send_confirmation_instructions目标但是收到以下错误

mvn deploy

我知道如果您不在pom.xml中包含[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.8. 2:deploy (default-deploy) on project MyPortlet: Deployment failed: repository eleme nt was not specified in the POM inside distributionManagement element or in -Dal tDeploymentRepository=id::layout::url parameter -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal o rg.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy (default-deploy) on pro ject RiskID: Deployment failed: repository element was not specified in the POM inside distributionManagement element or in -DaltDeploymentRepository=id::layout 标记,则会返回此错误,但我不希望将其打包到远程位置并希望改为部署到我的本地tomcat实例;这可以配置吗?

1 个答案:

答案 0 :(得分:4)

错误不是dependencyManagement,而是distributionManagement

  

部署失败:存储库eleme   在distributionManagement元素或-DaltDeploymentRepository=id::layout::url参数

中的POM中未指定nt

使用altDeploymentRepository选项也可以提供替代方案(如果您不想将其放在pom.xml文件中):

  

指定应将部署项目工件的备用存储库(除<distributionManagement>中指定的存储库之外)。   格式:id::layout::url

第一个元素id必须与server文件中定义的settings.xml匹配(您指定用于特定服务器的凭据)。

然后,layour和url特定于目标存储库。

然后您可以将命令调用为:

mvn deploy -DaltDeploymentRepository=test:Maven2:http://somewhere:someport

testserver

Maven settings元素的ID
<servers>
    <server>
      <id>test</id>
      <username>my_login</username>
      <password>my_password</password>
    </server>
</servers>

<强>更新
根据最新的说明(通过评论和编辑),这里有一些重点:

  • Maven deploy phase适用于
      

    在构建环境中完成,将最终包复制到远程存储库以与其他开发人员和项目共享。

  • 因此,在您的情况下,您不需要使用deploy阶段,也不需要使用maven-deploy-plugin
  • 由于Tomcat是目标服务器,因此您需要使用tomcat7-maven-plugin

以下是一些说明:

配置pom.xml
添加到pom.xml以下内容:

<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.2</version>
    <configuration>
        <url>http://localhost:8080/manager/text</url>
        <server>tomcat8</server>
        <path>/${project.build.finalName}</path>
    </configuration>
</plugin>

配置settings.xml
settings.xml部分中的以下内容添加到您的Maven servers

<server>
    <username>maven</username>
    <password>maven</password>
    <id>tomcat8</id>
</server>

请注意设置与上面的插件tomcat8 configuration元素之间的匹配server ID。

配置Tomcat以进行部署
在tomcat conf文件夹中,配置tomcat-users.xml文件:

  <role rolename="manager-script"/>
  <user username="maven" password="maven" roles="manager-gui,manager-script"/>

请注意与我们在Maven设置中实际指定的内容相匹配的凭据。

试一试
然后从命令行终于可以调用:

mvn tomcat7:deploy

如果您不想配置settings.xmlpom.xml,则需要通过命令行传递几个参数,如下所示:

mvn org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:deploy \ 
      -Durl=http://localhost:8080/manager/text \
      -Dusername=maven -Dpassword=maven

注意:为可读性添加了\和新行

查看其deploy目标的官方文档中的完整选项列表。