适用于 Java 8 的 Tomcat 8 Maven 插件

Posted

技术标签:

【中文标题】适用于 Java 8 的 Tomcat 8 Maven 插件【英文标题】:Tomcat 8 Maven Plugin for Java 8 【发布时间】:2015-01-09 02:52:51 【问题描述】:

tomcat7-maven-plugin 是否与 tomcat 8 服务器和 java 8 一起使用?我找不到任何tomcat8-maven-plugin

【问题讨论】:

不幸的是它还没有准备好issues.apache.org/jira/browse/MTOMCAT-234 尝试使用 Cargo 查看答案:***.com/questions/24271213/… 你能解释一下你在Tomcat7-maven-plugin中使用tomcat 8服务器的意思吗?您如何使插件与独立服务器一起使用?插件启动自己的服务器.. 这能回答你的问题吗? Tomcat 8 integration with Maven 【参考方案1】:

是的,你可以,

在您的 pom.xml 中,添加 tomcat 插件。 (您可以将它用于 Tomcat 7 和 8):

pom.xml

<!-- Tomcat plugin -->  
<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>    *(From maven > settings.xml)*
  <username>*yourtomcatusername*</username>  
  <password>*yourtomcatpassword*</password>   
 </configuration>   
</plugin>   

tomcat-users.xml

<tomcat-users>
    <role rolename="manager-gui"/>  
        <role rolename="manager-script"/>   
        <user username="admin" password="password" roles="manager-gui,manager-script" />  
</tomcat-users>

settings.xml (maven > conf)

<servers>  
    <server>
       <id>TomcatServer</id>
       <username>admin</username>
       <password>password</password>
    </server>
</servers>  

***部署/重新部署**

mvn tomcat7:deploymvn tomcat7:redeploy

在(Ubuntu 和 Windows 8/10)上试过这个:

Jdk 7 和 Tomcat 7 Jdk 7 和 Tomcat 8 Jdk 8 和 Tomcat 7 Jdk 8 和 Tomcat 8 Jdk 8 和 Tomcat 9

在 Jdk 7/8 和 Tomcat 7/8 上测试。 (适用于 Tomcat 8.5 和 9)

注意:Tomcat 管理器应该正在运行或正确设置,然后才能与 maven 一起使用。

祝你好运!

【讨论】:

> mvn org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:run INFO:正在启动 Servlet 引擎:Apache Tomcat/7.0.47 只有在本地 PC 上有 tomcat 时才好。不能解决嵌入式 tomcat 的问题 将用户名和密码放在 POM 中是多余的,并且存在安全风险(尤其是当您将代码签入存储库时)。在 POM 中通过 ID 识别服务器的全部意义在于,Maven 可以在特定于用户的设置文件中查找用户名和密码(未检入源代码控制)。但除此之外,这篇文章真的很有帮助——谢谢。 tomcat7-maven-plugin,7代表什么?是java版本还是tomcat版本。我可以将 tomcat7-maven-plugin 与 Tomcat-9 一起使用吗? 在哪里可以找到以下文件:tomcat-users.xml - (PROJECT_NAME\target\tomcat\conf\tomcat-users.xml?),settings.xml - (???)。我有 maven 项目,但仍然无法弄清楚【参考方案2】:

插件运行Tomcat 7.0.47:

mvn org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:run

 ...
 INFO: Starting Servlet Engine: Apache Tomcat/7.0.47

这是使用 Tomcat 8 和 Java 8 运行插件的示例:Cargo embedded tomcat: custom context.xml

【讨论】:

【参考方案3】:

差不多 2 年后.... 这个 github project readme 有一些清晰的 maven 插件配置,根据这个 apache github project,插件本身似乎很快就会实现。

【讨论】:

通过这个网址链接我的答案***.com/questions/37370927/…【参考方案4】:

groupId 和 Mojo 名称更改 从 2.0-beta-1 版本开始,tomcat mojos 已重命名为 tomcat6 和 tomcat7,目标相同。

您必须配置您的 pom 以使用这个新的 groupId:

<pluginManagement>
  <plugins>
    <plugin>
      <groupId>org.apache.tomcat.maven</groupId>
      <artifactId>tomcat6-maven-plugin</artifactId>
      <version>2.3-SNAPSHOT</version>
    </plugin>
    <plugin>
      <groupId>org.apache.tomcat.maven</groupId>
      <artifactId>tomcat7-maven-plugin</artifactId>
      <version>2.3-SNAPSHOT</version>
    </plugin>
  </plugins>
</pluginManagement>

或者在你的 settings.xml 中添加 groupId

…… org.apache.tomcat.maven ……

【讨论】:

【参考方案5】:

自 2017 年 11 月起,可以使用 tomcat8-maven-plugin:

<!-- https://mvnrepository.com/artifact/org.apache.tomcat.maven/tomcat8-maven-plugin -->
<dependency>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat8-maven-plugin</artifactId>
    <version>2.2</version>
</dependency>

请注意,此插件位于 ICM 存储库中(而不是 Maven 中心),因此您应该将存储库添加到 pom.xml 中的 pluginsRepositories 中:

<pluginRepositories>
    <pluginRepository>
        <id>icm</id>
        <name>Spring Framework Milestone Repository</name>
        <url>http://maven.icm.edu.pl/artifactory/repo</url>
    </pluginRepository>
</pluginRepositories>

【讨论】:

试过但看到Could not transfer artifact org.apache.tomcat.maven:tomcat8-maven-plugin:pom:2.2 from/to icm (http://maven.icm.edu.pl/artifactory/repo): Authentication failed for http://maven.icm.edu.pl/artifactory/repo/org/apache/tomcat/maven/tomcat8-maven-plugin/2.2/tomcat8-maven-plugin-2.2.pom 401 Unauthorized【参考方案6】:

另一个解决方案(如果可能的话)是使用 TomEE 而不是 Tomcat,它有一个工作的 maven 插件:

<plugin>
    <groupId>org.apache.tomee.maven</groupId>
    <artifactId>tomee-maven-plugin</artifactId>
    <version>7.1.1</version>
</plugin>

版本 7.1.1 包装了 Tomcat 8.5.41

【讨论】:

以上是关于适用于 Java 8 的 Tomcat 8 Maven 插件的主要内容,如果未能解决你的问题,请参考以下文章

java 8 String.chars() 是不是适用于 8 字节字符?

java 适用于Java 8的NullHandlers

防止 Java 7/8 采样声音在播放时点击(适用于 6)

android面临崩溃报告仅适用于8.0和8.1中的firebase通知

基于Docker构建CentOS7_Java8_Tomcat8.5 的镜像及Web应用的部署

基于Docker构建CentOS7_Java8_Tomcat8.5 的镜像及Web应用的部署