我在安装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。你能告诉我我在做什么错吗?
以下方式对我有用。
-
请更改您的
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>
-
确保您的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"/>
-
配置您的
USER_HOME/.m2/settings.xml
以包含密码。<settings> ... <servers> ... <server> <id>my-tomcat</id> <username>manager</username> <password>managerPwd</password> </server> </servers> </settings>
-
使用
mvn tomcat7:redeploy
部署
在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