我正在尝试使用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实例;这可以配置吗?
答案 0 :(得分:4)
错误不是dependencyManagement
,而是distributionManagement
部署失败:存储库eleme 在
中的POM中未指定ntdistributionManagement
元素或-DaltDeploymentRepository=id::layout::url
参数
使用altDeploymentRepository
选项也可以提供替代方案(如果您不想将其放在pom.xml
文件中):
指定应将部署项目工件的备用存储库(除
<distributionManagement>
中指定的存储库之外)。 格式:id::layout::url
第一个元素id
必须与server
文件中定义的settings.xml
匹配(您指定用于特定服务器的凭据)。
然后,layour和url特定于目标存储库。
然后您可以将命令调用为:
mvn deploy -DaltDeploymentRepository=test:Maven2:http://somewhere:someport
test
是server
<servers>
<server>
<id>test</id>
<username>my_login</username>
<password>my_password</password>
</server>
</servers>
<强>更新强>
根据最新的说明(通过评论和编辑),这里有一些重点:
deploy
phase适用于
在构建环境中完成,将最终包复制到远程存储库以与其他开发人员和项目共享。
deploy
阶段,也不需要使用maven-deploy-plugin
。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.xml
或pom.xml
,则需要通过命令行传递几个参数,如下所示:
mvn org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:deploy \
-Durl=http://localhost:8080/manager/text \
-Dusername=maven -Dpassword=maven
注意:为可读性添加了\
和新行
查看其deploy
目标的官方文档中的完整选项列表。