错误不是关于dependencyManagement
,而是distributionManagement
部署失败:未在 POM 内部distributionManagement
元素或-DaltDeploymentRepository=id::layout::url
参数中指定存储库元素
pom.xml
还可以使用以下altDeploymentRepository
选项提供替代方案(如果您不想将其放在文件中):
指定项目工件应部署到的替代存储库(除了在 中指定的那些<distributionManagement>
)。格式:id::layout::url
第一个元素 ,id
必须与文件中server
定义的a 匹配settings.xml
(您在其中指定用于特定服务器的凭据)。
然后,layour 和 url 特定于目标存储库。
然后,您可以调用该命令:
mvn deploy -DaltDeploymentRepository=test:Maven2:http://somewhere:someport
Maven 设置中服务器元素test
的 id在哪里
<servers>
<server>
<id>test</id>
<username>my_login</username>
<password>my_password</password>
</server>
</servers>
更新
根据最新的澄清(通过评论和编辑),这里有一些要点:
- Maven
deploy
阶段适用于
在构建环境中完成,将最终包复制到远程存储库以与其他开发人员和项目共享。
- 因此,在您的情况下,您不需要使用
deploy
phase 或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
在部分中配置您的
Add to your Maven :settings.xml
servers
<server>
<username>maven</username>
<password>maven</password>
<id>tomcat8</id>
</server>
请注意设置和上面的插件元素之间的匹配tomcat8
id 。configuration
server
配置Tomcat进行部署
在tomcatconf
文件夹中,配置tomcat-users.xml
文件:
<role rolename="manager-script"/>
<user username="maven" password="maven" roles="manager-gui,manager-script"/>
请注意与我们在 Maven 设置中实际指定的凭据匹配的凭据。
试一试
然后你终于可以从命令行调用:
mvn tomcat7:deploy
如果您不想配置settings.xml
nor pom.xml
,则需要通过命令行传递几个参数,如下所示:
mvn org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:deploy \
-Durl=http://localhost:8080/manager/text \
-Dusername=maven -Dpassword=maven
注意:\
并添加换行符以提高可读性
在其deploy
目标的官方文档中查看完整的选项列表。