文档章节

Eclipse下通过Maven的Tomcat插件运行Web工程的配置,包括启用https

cokolin
 cokolin
发布于 2015/04/26 22:58
字数 751
阅读 2K
收藏 6

码上生花,ECharts 作品展示赛正式启动!>>>

引用说明

Maven Plugin配置,配置信息参考以下文档,分两步执行,也可以使用其它方案:

http://tomcat.apache.org/maven-plugin-2.2/index.html

http://tomcat.apache.org/maven-plugin-trunk/tomcat6-maven-plugin/run-mojo.html

http://tomcat.apache.org/maven-plugin-trunk/tomcat7-maven-plugin/run-mojo.html

生成 Tomcat 密钥的文档:http://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html

本配置的环境限制是 Maven3.0 或以上,Jdk1.6 或以上,同时您的Maven工程是标准的Maven工程。

Tomcat7 可以使用 Servlet 3.0,强烈建议升级使用,本示例使用的插件版本是 2.2 版,本文发表时是最新的RELEASE版。

请勿再使用 tomcat:run, 这个命令已经过时,暂时没有发现通过 Tomcat8 运行的配置。


第一步

  • 二选一,在 Maven 的 setting.xml 中添加如下配置:

<settings>
  ....
  <pluginGroups>
    ....
    <pluginGroup>org.apache.tomcat.maven</pluginGroup>
    ....
  </pluginGroups>
  ....
</settings>
  • 二选一,在项目的 pom.xml 里面添加如下配置:

<project>
  ....
  <build>
    ....
      <plugins>
        <plugin>
          <groupId>org.apache.tomcat.maven</groupId>
          <artifactId>tomcat6-maven-plugin</artifactId>
          <version>2.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.tomcat.maven</groupId>
          <artifactId>tomcat7-maven-plugin</artifactId>
          <version>2.2</version>
        </plugin>
      </plugins>
    ....
  </build>
  ....
</project>


第二步

使用Eclipse的Maven Build运行,Goals配置,如图:

  • 配置二选一,tomcat6启动:

tomcat6:run -Dmaven.tomcat.uriEncoding=UTF-8 -Dmaven.tomcat.path=/ -Dmaven.tomcat.port=8080 -Dmaven.tomcat.httpsPort=8443
  • 配置二选一,tomcat7启动:

tomcat7:run -Dmaven.tomcat.uriEncoding=UTF-8 -Dmaven.tomcat.path=/ -Dmaven.tomcat.port=8080 -Dmaven.tomcat.httpsPort=8443


其它方案

不修改setting.xml和pom.xml,指定插件的版本:

  • 配置二选一,Tomcat6运 行: 

org.apache.tomcat.maven:tomcat6-maven-plugin:2.2:run -Dmaven.tomcat.uriEncoding=UTF-8
  • 配置二选一,Tomcat7运 行:

org.apache.tomcat.maven:tomcat7-maven-plugin:2.2:run -Dmaven.tomcat.uriEncoding=UTF-8

同样都可以补上虚拟路径和端口配置:

-Dmaven.tomcat.path=/ -Dmaven.tomcat.port=8080 -Dmaven.tomcat.httpsPort=8443


以上方案配置完成之后,第一次运行时,Maven会自动去下载插件依赖,编译并运行Web应用,成功之后就可以愉快的通过浏览器访问你的应用。


补充说明

用Maven的命令行运行只要在这些命名前加 mvn 即可。

-Dmaven.tomcat.uriEncoding=UTF-8 这个配置建议始终加上

-Dmaven.tomcat.path=/ 这个配置可以不加,默认使用 /${artifactId},如果配置了,建议带上双引号,例如:-Dmaven.tomcat.path="/test"

-Dmaven.tomcat.port=8080 这个配置如果不设置,默认就是8080

如果像我一样使用 Eclipse 执行,可以将这些参数配置到 Parameter 中,如图:

Tomcat 开启https前需要先生成 .keystore 文件,命令如下:

  • Windows:

"%JAVA_HOME%\bin\keytool" -genkey -alias tomcat -keyalg RSA
  • Unix:

$JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA

输入以上命令后输入密钥:changeit,剩下的内容可以一直回车或输入 Y 就完成了。 


总结

使用 Maven 的插件运行 Web 工程可以做到快速部署,提升开发效率。以前我使用Eclipse自带的Server配置来启动Web应用,虽然看起来更切合生产环境,但实际开发过程中因为各种问题,导致经常出现内存不足或运行出错,严重影响心情,而且实际上与生产的区别还是挺大的。

© 著作权归作者所有

cokolin
粉丝 13
博文 17
码字总数 5514
作品 0
广州
程序员
私信 提问
加载中
请先登录后再评论。
Eclipse下通过Maven的Jetty插件运行Web工程的配置,包括启动https

引用来源 Jetty7/8 的Maven插件配置:http://wiki.eclipse.org/Jetty/Feature/JettyMaven_Plugin Jetty9 最新的Maven插件配置:http://www.eclipse.org/jetty/documentation/current/jetty-......

cokolin
2015/05/02
4.5W
6
Eclipse Maven Tomcat的利用配置

1.事先准备 m2eclipse插件中其实内嵌了Maven,但个人更偏向于用独立的Maven(可以自由选择版本啦,偶尔可以在命令行中跑Maven命令啦)。 下载Apache Maven:http://maven.apache.org/,关于环...

躺着的S
2013/08/03
1W
4
maven web 应用配置

太久没有使用java有点生疏了,所以特意使用eclipse,通过maven 配置一下java web工程(本文仅用做个人查阅之用)。 安装jdk和eclipse jdk的下载可以在360软件管家等地方下载,eclipse可以在官...

yubang
2017/06/04
0
0
在eclipse中使用Maven分模块搭建SSM框架,创建jar、war、pom工程模块教学,项目的热部署,需要的可以留下邮箱,给大家发整理过的Maven笔记

第一章:Maven概述 (1)Maven是一个项目构建工具,由apache提供,用Java开发的 (2)构建工具:Ant(蚂蚁),Maven(专家) (3)构建工具作用:帮助程序员进行项目的创建,目录的创建、代码...

osc_a9b6fe4t
2019/06/21
1
0
idea/eclipse下Maven工程集成web服务(tomcat、jetty)

idea/eclipse下Maven工程集成web服务 转载请注明出处:http://www.cnblogs.com/funnyzpc/p/8093554.html   应用服务器最常用的一般有这哥仨:tomcat、jetty、webLogic ,前两者开源属轻量级...

€5è¬þxãÍ
2017/12/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

dockerfile编写

一、自定义镜像有两种方法: 1、docker commit 启动一个容器,增删改查,安装软件,修改配置文件等 ; 另存为一个新镜像 docker run -it docker.io/centos 启动一个容器 yum install -y vim...

osc_x4ot1joy
2分钟前
0
0
tomcat中使用ServletContainerInitializer实现自定义组件的初始化工作

简介 在web容器启动时为提供给第三方组件机会做一些初始化的工作,例如注册servlet或者filtes等,servlet规范中通过ServletContainerInitializer实现此功能。 每个框架要使用ServletContaine...

osc_zriqiio6
3分钟前
9
0
fcntl 文件锁和struct flock

当有多个进程要访问同一个文件的时候,为了防止多进程访问导致的不一致,我们就要考虑进程间的同步问题了。 举例说明:在嵌入式编程中经常会遇到写配置文件的问题,这个时候由于多进程操作就...

osc_ndt6833m
5分钟前
7
0
Python_Openpyxl 浅谈(最全总结 足够初次使用)

https://blog.csdn.net/weixin_43094965/article/details/82226263?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase&depth_1-utm_source=dis......

osc_nhnexrrc
5分钟前
11
0
【我的Android进阶之旅】解决Android Studio编译后安装apk报错:The APK file does not exist on disk

1、错误描述 今天用Android Studio编译应用后安装APK的时候,报错了,错误如下所示: The APK file build\outputs\apk\OYP_2.3.4_I2Base_6476_official_debug.apk does not exist on disk....

osc_s7fsyuo1
6分钟前
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部