我开始学习Maven,现在尝试将其与我开发的Web应用程序集成。

我使用的是Tomcat 7,在大多数示例中,我看到人们在tomcat-users.xml目录中的${CATALINA_HOME}/conf/上指定用户,然后像这样修改maven的pom.xmlsettings.xml

tomcat-users.xml:

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
 <role rolename="manager-gui"/>
  <role rolename="manager-script"/>
  <role rolename="manager-jmx"/>
  <role rolename="manager-status"/>
  <role rolename="admin-gui"/>
  <role rolename="admin-script"/>
  <user username="user" password="123456" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui,admin-script"></user>
</tomcat-users>


pom.xml:

<build>
...
<plugins>
...
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<server>apache-tomcat7</server>
<url>http://localhost:8080/manager/text</url>
<path>/${project.build.finalName}</path>
<username>user</username>
<password>123456</password>
</configuration>
</plugin>
</plugins>
</build>


settings.xml:

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                      http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <localRepository>${user.home}/.m2/repository</localRepository>
    <interactiveMode>true</interactiveMode>
    <usePluginRegistry>false</usePluginRegistry>
    <offline>false</offline>
 <servers>
      <server>
        <id>apache-tomcat7</id>
        <username>user</username>
        <password>123456</password>
      </server>
    </servers>
</settings>


所以我的问题是:


是否应该为每个项目每次都指定tomcat用户?我可以省略吗?
如果不能,出于安全原因是否仅需要它?
我还读到,在一个用户中组合manager-scriptmanager-gui这样的角色是一种不好的做法-那么对于两个用户如何相应地修改上面列出的文件?

最佳答案

该插件的目的是能够在tomcat Web容器中部署/运行/测试您的Web项目以进行自动化测试。该插件将在测试开始之前启动tomcat服务器,并在测试结束后停止。鉴于使用此Web容器的性质,安全性可能不是首要问题,您可以跳过指定用户,而仅依赖于此处描述的默认值:Tomcat7 Maven Plugin usage

希望这可以帮助。

09-10 07:28
查看更多