2

我的问题是,在运行 mvn tomcat:[re]deploy 时http://localhost:8080/manager,无论我为 tomcat 插件指定什么 url,我都会从中获取 HTTP 返回码 403

我在其他问题中发现

<url>http://localhost:8080/manager/text</url>

应该是我的目标

但是 maven completley 忽略了这个 xml-tag,它总是用于 /manager/deploy,即使我把完整的垃圾像,

 <url>http://localhost:8080/nana/</url>

我尝试了什么:

  • 重启tomcat,
  • 检查 url 和用户名/密码的拼写,
  • Tomcat正在运行,
  • 如果我添加 manager-gui 作为角色,我可以在 gui 上使用用户名“mavendeployer”登录
  • mvn install 工作正常
  • 在整个项目中搜索 /manager 的出现 - 没有找到(如果 /nana 被放置为 url)
  • 从 .pom 中的 tomcat7-plugin 中删除了<version>标签,试图确保它不是我使用的版本与我的 tomcat 版本的行为有趣

我正在使用 maven 3.0.5、tomcat7、Maven 为插件提供的任何版本

我的Tomcat用户:

    <user username="mavendeployer" 
          password="maven" 
          roles = "manager-script,admin-script" />

我的 Maven 服务器设置:

<server>
    <id>localtomcat</id>
     <username>mavendeployer</username>
    <password>maven</password>
</server>

我的 pom: (删除了很多依赖项以保持简短,构建工作正常,只是 mvn tomcat:[re]deploy 失败:

<?xml version="1.0" encoding="utf-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>net.test</groupId>
  <artifactId>testApp</artifactId>
  <packaging>war</packaging>
  <!-- <server SW version>-<REST interface version> -->
  <version>1.6.4-1.0.3</version>
  <name>Test</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <version>2.4.3</version>
    </dependency>
      ...javax.servlet
      ...javax.servlet.jsp
      ...
         </dependencies>

  <build>
    <finalName>test</finalName>
    <plugins>
      <!-- Maven Tomcat Plugin -->
      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <configuration>
          <url>http://localhost:8080/nana/</url>
          <server>localtomcat</server>
          <path>/mim</path>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.0.2</version>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
        </configuration>
      </plugin>  
    </plugins>
  </build>
</project>

我似乎无法找到将 url 更改为 /manager/text 或 manager/html 并没有解决 403 问题的问题,我错过了什么?

4

2 回答 2

8

好的,解决方案非常棘手!目标不是 tomcat:[re]depoly,而是 tomcat* 7 *:[re]deploy^^,谢谢

于 2013-07-16T08:42:31.547 回答
2

以下对我有用:

我的tomcat-users.xml-注意角色元素

<tomcat-users>
  <role rolename="manager-script"/>
  <user username="mavendeployer" password="maven" roles="manager-script"/>
</tomcat-users>

我的pom.xml

<build>
  <finalName>your_web_app_name</finalName>
  <pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.1</version>
      </plugin>
    </plugins>
  </pluginManagement>
  <plugins>
    <plugin>
      <groupId>org.apache.tomcat.maven</groupId>
      <artifactId>tomcat7-maven-plugin</artifactId>
      <configuration>
        <server>localtomcat</server>
        <update>true</update>
        <url>http://localhost:8080/manager/text</url>
      </configuration>
    </plugin>
  </plugins>
</build>

你的 Mavensettings.xml对我来说似乎很好。

如果这仍然不起作用,请告诉我,我会寻找其他设置/配置。

于 2013-07-16T08:03:55.753 回答