2012-11-06 180 views
4

我在部署到tomcat作为服务安装到远程机器时遇到问题。 我的Tomcat用户如下:tomcat7 maven插件部署失败

<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控制台输出的401未授权。你能告诉我我做错了什么吗?

+0

http://stackoverflow.com/questions/3714080/tomcat-7-maven-plugin –

+0

你可以看到我的回答在http://stackoverflow.com/questions/16230666/failed-to-execute-goal-org-codehaus-mojotomcat-maven-plugin1-1deploy-default/16292897#16292897 – sancho21

+0

请参阅我对http:// stackoverflow的回答。com/questions/16230666/failed-to-execute-goal-org-codehaus-mojotomcat-maven-plugin1-1deploy-default/16292897#16292897 – sancho21

回答

3

尝试运行MVN与-x -e ,那么你将看到的是什么样的信息的发送到服务器。我的猜测是服务器不会获得用户名/密码。这意味着配置文件有问题,例如:settings.xml

tomcat7-maven-plugin如何知道settings.xml的位置?

编辑:看看这个which-maven-settings-xml-files

埃莱克提供有与-X和的游戏内看到 “读取用户设置从。用户/ .m2目录/ settings.xml中..

MVN运行
+0

的确是这个问题。设置xml是从不同的位置获取的。我认为正确的是从C:\ m2 \ settings.xml中使用,但是从C:\ users \ .m2中获取。 Thx寻求帮助 – Arek

0

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

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

HIH

+0

我也试过这个,没有任何改变 – Arek

+0

删除角色中的尾随空格=“...” – poussma

+1

你能连接到http:// localhost:8081/manager/text吗?你看到失败 - 未知的命令/文本?你有没有在server.xml中配置的UserDatabase? – poussma

1

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

工作为好。

6

以下方式对我的作品。

  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

了解更多关于http://tomcat.apache.org/tomcat-7.0-doc/manager-howto.html