Tomcat7 Maven插件部署失败



我在安装tomcat的远程机器时遇到困难。我的tomcat-users如下:

<tomcat-users>
<role rolename="manager"/>
<user username="admin" password="admin" roles="tomcat, admin, manager-gui, manager-script"/>
</tomcat-users>

我的settings.xml是:

<settings>
<pluginGroups>
<pluginGroup>org.apache.tomcat.maven</pluginGroup>
</pluginGroups>
<servers>
<server>
  <id>tomcat7</id>
  <username>admin</username>
  <password>admin</password>
</server>
</servers>
</settings>

和我的pom.xml具有以下内容:

            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <configuration>
                    <server>tomcat7</server>
                    <url>http://localhost:8081/manager/text</url>
                    <warFile>target/editor-${project.version}.war</warFile>
                </configuration>

我一直在Maven Console的输出上未授权401。你能告诉我我在做什么错吗?

以下方式对我有用。

  1. 请更改您的pom.xml以包括

    <project>
        ...
        <build>    
            <plugins>    
            ....
                <plugin>
                    <groupId>org.apache.tomcat.maven</groupId>
                    <artifactId>tomcat7-maven-plugin</artifactId>
                    <version>2.1</version>
                    <configuration>
                        <url>http://localhost:8080/manager/text</url>
                        <server>my-tomcat</server>
                        <path>/myapp</path>
                    </configuration>
                </plugin>
            </plugins>
            ...
        </build>
        ...
    </project>
    
  2. 确保您的tomcat 7服务器在TOMCAT_HOME/conf/tomcat-users.xml上具有以下行:

    <!-- Role to manage WAR files via HTML /manager. The name should be as is! -->
    <role rolename="manager-gui"/>
    <!-- Role to manage WAR files via script like Maven. The name should be as is! -->
    <role rolename="manager-script"/>
    <!-- One user cannot have manager-gui and manager-script roles -->
    <user username="managerGui" password="managerPwd" roles="manager-gui"/>
    <user username="manager" password="managerPwd" roles="manager-script"/>
    
  3. 配置您的USER_HOME/.m2/settings.xml以包含密码。

    <settings>
        ...
        <servers>
            ...
            <server>
                <id>my-tomcat</id>
                <username>manager</username>
                <password>managerPwd</password>
            </server>
        </servers>
    </settings>
    
  4. 使用mvn tomcat7:redeploy

  5. 部署

在http://tomcat.apache.org/tomcat-7.0-doc/manager-howto.html

上了解更多信息。

尝试使用-x -e运行MVN然后,您将看到将哪种信息发送到服务器。我的猜测是服务器没有获得用户名/通行证。这意味着配置文件,即:settings.xml

tomcat7-maven-plugin如何知道settings.xml在哪里?

编辑:查看此策略 - XML-files

ELEK 在那里提供的MVN使用-x,在开始时您会看到"从.user/.m2/settings.xml读取用户设置..

mvn tomcat7:redeploy -Dtomcat.username=tomcatscript -Dtomcat.password=s3cret

也有效。

您应该在tomcat-users.xml中声明所有角色:

<role rolename="tomcat"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="admin"/>
<role rolename="manager-script"/>

hih

最新更新