除了tomcat7-maven-plugin之外,我没有找到任何tomcat-maven-plugin。 我可以与 apache-tomcat-9.0.0.M15 一起使用吗?
您可以使用该插件部署到单独运行的 tomcat 9。
run
目标不会起作用,但deploy
目标会起作用。
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<url>http://localhost:8080/manager/text</url>
<server>TomcatServer</server>
<path>/myapp</path>
</configuration>
</plugin>
Maven 目标:
mvn tomcat7:deploy
mvn tomcat7:undeploy
mvn tomcat7:redeploy
注意:不要忘记在 tomcat-users.xml 和 maven settings.xml 中添加 tomcat 用户
tomcat-user.xml
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="admin" password="password" roles="manager-gui,manager-script" />
</tomcat-users>
manager-script 角色使应用程序(即 Maven)能够将 jar/war 部署到应用程序服务器。
Maven 文件设置.xml
<?xml version="1.0" encoding="UTF-8"?>
<settings ...>
<servers>
<server>
<id>TomcatServer</id>
<username>admin</username>
<password>password</password>
</server>
</servers>
</settings>
正如其他答案中所述,tomcat7-maven-plugin仍然可以用于部署到正在运行的 Tomcat 9(带有管理器应用程序)。但是,要运行 embedded Tomcat 9,请尝试 Cargo 插件:
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.7.6</version>
<configuration>
<container>
<containerId>tomcat9x</containerId>
<type>embedded</type>
</container>
</configuration>
</plugin>
开始于:
mvn org.codehaus.cargo:cargo-maven2-plugin:run
我很长时间都在寻找同一问题的答案。现在我找到了。
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.8.3</version>
<configuration>
<container>
<containerId>tomcat9x</containerId>
<type>embedded</type>
</container>
<deployables>
<deployable>
<type>war</type>
<location>${project.build.directory}/${project.build.finalName}.war</location>
<properties>
<context>/</context>
</properties>
</deployable>
</deployables>
</configuration>
</plugin>
并与
一起运行mvn package cargo:run
我让它与cargo-maven3-plugin一起使用
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven3-plugin</artifactId>
<version>1.10.8</version>
<configuration>
<container>
<containerId>tomcat9x</containerId>
<type>installed</type>
<systemProperties>
<property1>value1</property1>
</systemProperties>
</container>
<deployables>
<deployable>
<artifactId>SRP</artifactId>
<groupId>com.statestr</groupId>
<type>war</type>
<location>${project.build.directory}/${project.build.finalName}.war</location>
<pingURL>http://127.0.0.1:8080/APP</pingURL>
</deployable>
</deployables>
<configuration>
<type>existing</type>
<home>C://DEVTOOLS//apache-tomcat-9.0.36</home>
</configuration>
</configuration>
<executions>
<execution>
<id>start-server</id>
<phase>pre-integration-test</phase>
<goals>
<goal>start</goal>
</goals>
</execution>
</executions>