这是我的pom的插件部分。
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.0</version>
<configuration>
<url>http://localhost:8080/manager</url>
<username>tomcat</username>
<password>s3cret</password>
<path>/Test</path>
<port>8080</port>
</configuration>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
早些时候我遇到maven tomcat插件无法使用tomcat 7等问题,但现在用“tomcat7-maven-plugin”解决了。我使用“http://localhost:8080/manager
”作为网址。对于这个maven tomcat编译器插件的几乎所有线程都是关于构建失败的。但我的构建成功(我运行tomcat7:deploy)。问题是tomcat正在回复
tomcatManager状态码:403,ReasonPhrase:Forbidden
以及我们在浏览器上遇到身份验证失败时看到的html。在我的Linux机器下,相同的代码工作正常。我尝试在settings.xml中使用server元素的不同场景,它位于.m2内部和maven_home / conf等内部。仍然无法正常工作。
正如我发现maven无法验证tomcat。找到用户名和密码,我可以使用GUI登录。所以期待在这里提供帮助。
p.s - 我的tomcat-users.xml fiel
<role rolename="manager-gui" />
<user username="tomcat" password="s3cret" roles="manager-gui"/>
答案 0 :(得分:10)
网址不正确请尝试:
<url>http://localhost:8080/manager/text</url>
tomcat-users.xml文件的内容是什么。你有没有正确设置权限? 见http://tomcat.apache.org/tomcat-7.0-doc/manager-howto.html
答案 1 :(得分:0)
我可以让tomcat部署工作,但环境不同。所以,无论如何,我要告诉我怎么做,因为它可以帮助别人。
在这种情况下,我将tomcat6作为我的Web容器,并且我使用eclipse Helios作为IDE。
首先,我设置了环境变量,如maven网站(Maven download installation help)中所述。这意味着设置环境变量M2_HOME和M2,并且M2在我的路径变量中。
然后在eclipse中我有maven安装文件夹,本地存储库(如果不是默认值)和settings.xml文件正确。 (这些设置在Window - &gt; Preferences - &gt; Maven - &gt; Installations and User settings)
在tomcat_home \ conf \ tomcat-users.xml中我使用角色管理器脚本创建了用户。(注意,这里我使用的是tomcat6)
< role rolename="manager-script"/>
< user password="s3cret" roles="manager-script" username="tomcat"/>
在POM.xml中我有maven tomcat插件定义如下。
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat6-maven-plugin</artifactId>
<version>2.0</version>
<configuration>
<url>http://localhost:8080/manager</url>
<server>TomcatServer</server>
</configuration>
</plugin>
然后在eclipse运行配置中创建一个配置来运行目标&#34; tomcat6:deploy&#34; (来自apache的这个site说tomcat:deploy是目标,但它没有用。)
完美运行并将我的应用部署到容器中。一旦部署,应用程序需要使用&#34; tomcat6:undeploy&#34;在再次部署之前。
我不是这方面的专家,但我对某些事实仍有疑问。但是,由于我在很多地方看到这个问题,我认为这会帮助某人同样的问题。
谢谢
答案 2 :(得分:0)
今天我尝试使用Tomcat 7的相同应用程序。我需要将插件artifactId更改为“tomcat7-maven-plugin”。我必须将网址更改为“http://localhost:8080/manager
”。完成这些更改后,部署工作正常。另外我发现maven在.m2文件夹中读取了settings.xml。 mvaen_home / conf中还有一个settings.xml文件,但它不是它读取的文件。我发现的另一件事是tomcat7没有取消部署tomcat6有一个取消部署。
答案 3 :(得分:0)
有时当上述条件中的所有条件都匹配且您仍然遇到错误时,您可能正在使用mvn tomat7:deploy命令。同时服务器由Eclipse维护,并且不会在heand中继续使用。您可以在Eclipse IDE中停止服务器,然后使用mvn命令再次尝试。
答案 4 :(得分:0)
尝试了几件事之后,以下配置对我有用。 请试一试
Tomcat的users.xml中
<role rolename="manager-gui"/>
<user password="tomcat" roles="manager-gui" username="tomcat"/>
pom.xml
<!-- Maven Tomcat Plugin -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<configuration>
<url>http://localhost:8080/manager/html</url>
<username>tomcat</username>
<password>tomcat</password>
<update>true</update>
<path>/Test</path>
</configuration>
</plugin>