在 Tomcat 中使用 Maven 时我应该指定用户吗?

Should I specify users when using Maven with Tomcat?

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

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

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>

所以我的问题是:

  1. 每个项目每次都应该指定tomcat-users吗?我可以省略吗?
  2. 如果我不能,那么是否只是出于安全原因才需要它?
  3. 我还了解到,将 manager-scriptmanager-gui 等角色组合到一个用户中是一种不好的做法 - 那么对于两个用户如何相应地修改上面列出的文件?

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

希望对您有所帮助。