Java 在Maven POM中禁用分发管理

Java 在Maven POM中禁用分发管理,java,maven,tomcat,liferay,maven-deploy-plugin,Java,Maven,Tomcat,Liferay,Maven Deploy Plugin,我试图在我的Liferay portlet上使用maven运行一个mvn部署目标,但出现以下错误 [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 insi

我试图在我的Liferay portlet上使用maven运行一个
mvn部署
目标,但出现以下错误

[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

我知道如果在pom.xml中不包含
标记,将返回此错误,但是我不希望将其打包到远程位置,而是希望部署到本地tomcat实例;这可以配置吗?

错误不是关于
dependencyManagement
而是关于
distributionManagement

部署失败:存储库eleme nt未在
distributionManagement
元素内的POM中或
-DaltDeploymentRepository=id::layout::url
参数中指定

另一种选择(如果您不想将其放在
pom.xml
文件中)也可以通过使用以下选项提供:

指定项目构件应部署到的替代存储库(在
中指定的存储库除外)。 格式:
id::layout::url

第一个元素,即
id
,必须与
设置.xml
文件中定义的
服务器
匹配(在该文件中指定用于特定服务器的凭据)

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

然后,您可以通过以下方式调用该命令:

mvn deploy -DaltDeploymentRepository=test:Maven2:http://somewhere:someport
其中,
test
是应用程序中元素的id

配置您的
设置.xml

将以下内容添加到Maven
settings.xml
servers
部分:

<server>
    <username>maven</username>
    <password>maven</password>
    <id>tomcat8</id>
</server>
请注意与我们在Maven设置中实际指定的内容相匹配的凭据

试试看
然后,您最终可以从命令行调用:

mvn tomcat7:deploy
如果不想配置
settings.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>
mvn org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:deploy \ 
      -Durl=http://localhost:8080/manager/text \
      -Dusername=maven -Dpassword=maven
注意:
\
和为便于阅读而添加的换行符


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

谢谢@A_Di-Matteo,但我不想部署到任何远程服务器,而是想部署到本地tomcat实例。@KuraiBankusu那么你应该指定它:)默认情况下,
部署
阶段不适用于此,因此,您需要使用
tomcat7 maven插件
,而不是
maven部署插件
@KuraiBankusu检查我的更新,我想说,这足以让您对该主题有更多的了解和急救。希望能有帮助
mvn tomcat7:deploy
mvn org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:deploy \ 
      -Durl=http://localhost:8080/manager/text \
      -Dusername=maven -Dpassword=maven