gpt4 book ai didi

java - 在 Maven POM 中禁用 distributionManagement

转载 作者:行者123 更新时间:2023-11-30 06:52:15 31 4
gpt4 key购买 nike

我正在尝试运行 mvn deploy在我的 Liferay portlet 上使用 Maven 的目标,但出现以下错误

[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

据我了解,如果您不包含 <distributionManagement />,则会返回此错误pom.xml 中的标记,但是我不想将其打包到远程位置,而是想部署到我的本地 tomcat 实例;这可以配置吗?

最佳答案

错误与dependencyManagement无关而是distributionManagement

Deployment failed: repository eleme nt was not specified in the POM inside distributionManagement element or in -DaltDeploymentRepository=id::layout::url parameter

另一种方法(如果你不想将它放在你的 pom.xml 文件中)也可以通过使用 altDeploymentRepository 来提供。选项:

Specifies an alternative repository to which the project artifacts should be deployed ( other than those specified in <distributionManagement> ). Format: id::layout::url

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

然后布局和 url 特定于目标存储库。

然后您可以调用命令:

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

在哪里testserver 的 ID你的 Maven settings 中的元素

<servers>
<server>
<id>test</id>
<username>my_login</username>
<password>my_password</password>
</server>
</servers>

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

  • maven deploy phase是为了

    done in the build environment, copies the final package to the remote repository for sharing with other developers and projects.

  • 因此,在您的情况下,您不需要使用 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
添加到您的 Maven settings.xml servers 中的以下内容部分:

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

注意匹配 tomcat8设置和插件之间的 ID configuration以上,server元素。

为部署配置 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 的官方文档中查看完整的选项列表目标。

关于java - 在 Maven POM 中禁用 distributionManagement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39272046/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com