使用mvn tomcat:run
时,Maven将Tomcat捆绑包下载到目标目录中,插件使用Web项目启动此Tomcat实例。在Eclipse的服务器视图中看不到此Tomcat实例。
但是我安装了一个本地Tomcat 6,我能否以一种使用本地Tommcat实例(在CATALINA_HOME下)而不是在目标项目中安装新版本的方式配置Tomcat插件?
答案 0 :(得分:2)
这是设计的。 tomcat:run的官方文件说:
在开发war项目时,通常会构建war并将其部署到已安装的Tomcat实例。这是耗费时间和资源的,并且需要时间在本地安装实例。 运行mojo让你有机会通过在Maven构建中的嵌入式Tomcat实例中运行你的战争来保存它。
所以我必须在服务器视图中启动已安装的Tomcat实例,然后maven插件将此服务器实例用于tomcat之外的目标:run。
答案 1 :(得分:1)
1)将Tomcat升级到Tomcat 7,
2)配置Tomcat users.xml以包含一组凭据:
<tomcat-users>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<role rolename="manager"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="admin"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user password="password" roles="manager-gui, manager-script, manager-jmx, manager-status, manager, admin-gui, admin-script, admin" username="admin"/>
</tomcat-users>
你的Maven .settings.xml:
<server>
<id>local_tomcat</id>
<username>admin</username>
<password>password</password>
</server>
使用新的Tomcat插件创建一个新的'dev'配置文件:
<profile>
<id>dev</id>
<build>
<finalName>tjb</finalName>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<version>2.0-beta-1</version>
<configuration>
<url>http://localhost:8080/manager/text</url>
<server>local_tomcat</server>
<path>/</path>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>