我正在创建一个包含两个模块的虚拟maven项目,我已经包含了一个通用的pom.xml文件。我能够从根pom.xml文件构建并运行所有测试,但是当它将文件部署到Tomcat时,它就会崩溃。我的插件是:
<build>
<finalName>dummy</finalName>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<configuration>
<url>http://127.0.0.1:8090/manager/text</url>
<server>TomcatServer</server>
<path>/dummy</path>
</configuration>
</plugin>
</plugins>
</build>
的settings.xml
<server>
<id>TomcatServer</id>
<username>admin</username>
<password>admin</password>
</server>
但是,当我运行构建时,它使用默认配置值,我收到以下错误消息:
无法在项目webapp上执行目标org.codehaus.mojo:tomcat-maven-plugin:1.1:deploy(default-cli):无法调用Tomcat管理器:http://localhost:8080/manager/deploy?path=%2Fwebapp&war= - &gt; [帮助1]
有谁知道如何让插件使用我的配置?
更多输出:
[INFO] --- maven-war-plugin:2.1.1:war (default-war) @ webapp ---
[INFO] Packaging webapp
[INFO] Assembling webapp [webapp] in [C:\Websites\www.dummy.app\webapp\target\webapp]
[INFO] Processing war project
[INFO] Copying webapp resources [C:\Websites\www.dummy.app\webapp\src\main\webapp]
[INFO] Webapp assembled in [15 msecs]
[INFO] Building war: C:\Websites\www.dummy.app\webapp\target\webapp.war
[WARNING] Warning: selected war files include a WEB-INF/web.xml which will be ignored
(webxml attribute is missing from war task, or ignoreWebxml attribute is specified as 'true')
[INFO]
[INFO] <<< tomcat-maven-plugin:1.1:deploy (default-cli) @ webapp <<<
[INFO]
[INFO] --- tomcat-maven-plugin:1.1:deploy (default-cli) @ webapp ---
[INFO] Deploying war to http://localhost:8080/webapp
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] my-app ............................................ SUCCESS [4.747s]
[INFO] webapp ............................................ FAILURE [3.313s]
[INFO] dummy ............................................. SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 9.376s
[INFO] Finished at: Mon Jan 23 22:46:11 GMT 2012
[INFO] Final Memory: 18M/245M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.codehaus.mojo:tomcat-maven-plugin:1.1:deploy (default-cli) on project webapp: Cannot invoke Tomcat manager: http://localhost:8080/manager/deploy?path=%2Fwebapp&war= -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn <goals> -rf :webapp
由于
答案 0 :(得分:3)
<properties>
<maven.tomcat.url>http://localhost:8080/manager/text</maven.tomcat.url>
</properties>
为我修好了。
答案 1 :(得分:1)
答案 2 :(得分:1)
我也有同样的问题。这就是我的解决方法。虽然这是一个迟到的答案,但我认为即使在今天这个答案仍然适用。
我正在使用tomcat7.tomcat-maven-plugin:1.1默认为tomcat部署网址http://localhost:8080/manager/html
,但对于 tomcat 7 ,网址已更改为http://localhost:8080/manager/text
。
第1步:找到网址&amp; tomcat用于部署war文件的角色。
我发现通过手动转到
apache-tomcat-7.0.41\webapps\manager\WEB-INF\web.xml
用于部署的网址是: / text ,因此maven应使用 http://localhost:8080/manager/text
此网址的作用是“ manager-script ”
<security-constraint>
<web-resource-collection>
<web-resource-name>Text Manager interface (for scripts)</web-resource-name>
<url-pattern>/text/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>manager-script</role-name>
</auth-constraint>
</security-constraint>
步骤2:为角色配置tomcat凭据
所以现在我们找到了部署war和角色的URL。如果你没有配置tomcat用户。下面是如何将角色添加到apache-tomcat-7.0.41 \ conf \ tomcat-users.xml。 / p>
<tomcat-users>
<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="admin"/>
<user username="admin" password="admin" roles="admin,manager,manager-gui,manager-script"/>
</tomcat-users>
步骤3:在pom.xml中配置tomcat-maven-plugin以使用tomcat url进行部署。
现在我们需要配置tomcat-maven-plugin来使用这些。下面是我在pom.xml中的插件配置。这将覆盖tomcat-maven-plugin的默认tomcat部署URL。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<configuration>
<server>mytomcatserver</server>
<url>http://localhost:8080/manager/text</url>
</configuration>
</plugin>
步骤4:为tomcat网址凭据配置maven的settings.xml。
现在,对于将war文件部署到tomcat的maven插件,它需要用户名&amp;密码 为您的tomcat服务器。 找出maven所在的settings.xml(我的是apache-maven-3.2.3 \ conf)并将以下配置应用到
<servers>
<server>
<id>mytomcatserver</id>
<username>admin</username>
<password>admin</password>
</server>
</servers>
第5步:关键时刻
启动tomcat。
mvn包(创建战争文件)
mvn tomcat:deploy(用于战争部署的tomcat控制台)
您的网络应用程序将在http://localhost:8080/{context}