2012-11-06 150 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