maven jetty
父项目:
<dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId></dependency></dependencies><profiles><profile><id>dev</id><properties><env>dev</env></properties></profile><profile><id>test</id><properties><env>test</env></properties></profile><profile><id>beta</id><properties><env>beta</env></properties></profile><profile><id>prod</id><properties><env>prod</env></properties></profile></profiles><build><pluginManagement><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.2</version><configuration><source>${javac.target.version}</source><target>${javac.target.version}</target></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><version>2.7</version><configuration><encoding>UTF-8</encoding></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-dependency-plugin</artifactId><version>2.9</version></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-war-plugin</artifactId><version>2.4</version></plugin><plugin><groupId>org.mortbay.jetty</groupId><artifactId>jetty-maven-plugin</artifactId><version>8.1.16.v20140903</version></plugin><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>${tomcat7.version}</version></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>${maven.surefire.plugin.version}</version><configuration><skipTests>true</skipTests></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><version>${maven.jar.plugin.version}</version></plugin><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>${mybatis.generator.plugin.version}</version></plugin></plugins></pluginManagement></build> </project>
子项目:
<build><finalName>web</finalName><sourceDirectory>${basedir}/src/main/java</sourceDirectory><resources><resource><directory>${basedir}/src/main/resources</directory><filtering>true</filtering><includes><include>*.xml</include><include>*.properties</include><include>spring/*</include><include>mybatis/**/*</include></includes><excludes><exclude>config.properties</exclude><exclude>jdbc.properties</exclude><exclude>log4j.properties</exclude><exclude>version.properties</exclude></excludes></resource><resource><directory>${basedir}/src/main/resources/config/${env}</directory><includes><include>config.properties</include><include>jdbc.properties</include><include>log4j.properties</include><include>version.properties</include></includes></resource></resources><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>${javac.target.version}</source><target>${javac.target.version}</target></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-dependency-plugin</artifactId></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><configuration><encoding>UTF-8</encoding></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-war-plugin</artifactId><configuration><outputDirectory>${project.build.directory}</outputDirectory><archive><manifest><addDefaultImplementationEntries>true</addDefaultImplementationEntries><addDefaultSpecificationEntries>true</addDefaultSpecificationEntries></manifest></archive></configuration></plugin><plugin><groupId>org.mortbay.jetty</groupId><artifactId>jetty-maven-plugin</artifactId><configuration><connectors><connectorimplementation="org.eclipse.jetty.server.nio.SelectChannelConnector"><host>0.0.0.0</host><port>8081</port></connector></connectors><scanIntervalSeconds>10</scanIntervalSeconds><stopKey>jetty-stop</stopKey><stopPort>9998</stopPort><webApp><contextPath>/safety-web</contextPath></webApp></configuration></plugin></plugins><defaultGoal>install</defaultGoal></build>
概述
jetty是什么?
jetty是轻量级的web服务器和servlet引擎。
它的最大特点是:可以很方便的作为嵌入式服务器。
它是eclipse的一个开源项目。不用怀疑,就是你常用的那个eclipse。
它是使用Java开发的,所以天然对Java支持良好。
官方网址
github源码地址
什么是嵌入式服务器?
以jetty来说明,就是只要引入jetty的jar包,可以通过直接调用其API的方式来启动web服务。
用过Tomcat、Resin等服务器的朋友想必不会陌生那一套安装、配置、部署的流程吧,还是挺繁琐的。使用jetty,就不需要这些过程了。
jetty非常适用于项目的开发、测试,因为非常快捷。如果想用于生产环境,则需要谨慎考虑,它不一定能像成熟的Tomcat、Resin等服务器一样支持企业级Java EE的需要。
jetty的嵌入式启动
我觉得嵌入式启动方式的一个好处在于:可以直接运行项目,无需每次部署都得再配置服务器。
jetty的嵌入式启动使用有两种方式:
API方式
maven插件方式
API方式
添加maven依赖
<dependency><groupId>org.eclipse.jetty</groupId> <artifactId>jetty-webapp</artifactId> <version>9.3.2.v20150730</version> <scope>test</scope> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-annotations</artifactId> <version>9.3.2.v20150730</version> <scope>test</scope> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>apache-jsp</artifactId> <version>9.3.2.v20150730</version> <scope>test</scope> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>apache-jstl</artifactId> <version>9.3.2.v20150730</version> <scope>test</scope> </dependency>
官方的启动代码
public classSplitFileServer { publicstaticvoidmain( String[] args ) throwsException { // 创建Server对象,并绑定端口 Server server = new Server(); ServerConnector connector = new ServerConnector(server); connector.setPort(8090); server.setConnectors(new Connector[] { connector }); // 创建上下文句柄,绑定上下文路径。这样启动后的url就会是:http://host:port/context ResourceHandler rh0 = new ResourceHandler(); ContextHandler context0 = new ContextHandler(); context0.setContextPath("/"); // 绑定测试资源目录(在本例的配置目录dir0的路径是src/test/resources/dir0) File dir0 = MavenTestingUtils.getTestResourceDir("dir0"); context0.setBaseResource(Resource.newResource(dir0)); context0.setHandler(rh0); // 和上面的例子一样 ResourceHandler rh1 = new ResourceHandler(); ContextHandler context1 = new ContextHandler(); context1.setContextPath("/"); File dir1 = MavenTestingUtils.getTestResourceDir("dir1"); context1.setBaseResource(Resource.newResource(dir1)); context1.setHandler(rh1); // 绑定两个资源句柄 ContextHandlerCollection contexts = new ContextHandlerCollection(); contexts.setHandlers(new Handler[] { context0, context1 }); server.setHandler(contexts); // 启动 server.start(); // 打印dump时的信息 System.out.println(server.dump()); // join当前线程 server.join(); } }
直接运行Main方法,就可以启动web服务。
注:以上代码在eclipse中运行没有问题,如果想在Intellij中运行还需要为它指定配置文件。
如果想了解在Eclipse和Intellij都能运行的通用方法可以参考我的github代码示例。
我的实现也是参考springside的方式。
代码行数有点多,不在这里贴代码了。
完整参考代码
Maven插件方式
如果你熟悉maven,那么实在太简单了
注: Maven版本必须在3.3及以上版本。
(1) 添加maven插件
<plugin><groupId>org.eclipse.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>9.3.12.v20160915</version> </plugin>
(2) 执行maven命令:
mvn jetty:run
讲真,就是这么简单。jetty默认会为你创建一个web服务,地址为127.0.0.1:8080。
当然,你也可以在插件中配置你的webapp环境
<plugin><groupId>org.eclipse.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>9.3.12.v20160915</version> <configuration> <webAppSourceDirectory>${project.basedir}/src/staticfiles</webAppSourceDirectory> <!-- 配置webapp --> <webApp> <contextPath>/</contextPath> <descriptor>${project.basedir}/src/over/here/web.xml</descriptor> <jettyEnvXml>${project.basedir}/src/over/here/jetty-env.xml</jettyEnvXml> </webApp> <!-- 配置classes --> <classesDirectory>${project.basedir}/somewhere/else</classesDirectory> <scanClassesPattern> <excludes> <exclude>**/Foo.class</exclude> </excludes> </scanClassesPattern> <scanTargets> <scanTarget>src/mydir</scanTarget> <scanTarget>src/myfile.txt</scanTarget> </scanTargets> <!-- 扫描target目录下的资源文件 --> <scanTargetPatterns> <scanTargetPattern> <directory>src/other-resources</directory> <includes> <include>**/*.xml</include> <include>**/*.properties</include> </includes> <excludes> <exclude>**/myspecial.xml</exclude> <exclude>**/myspecial.properties</exclude> </excludes> </scanTargetPattern> </scanTargetPatterns> </configuration> </plugin>
官方给的jetty-env.xml范例
参考
jetty wiki
jetty官方文档
转载于:https://www.cnblogs.com/softidea/p/5876563.html
maven jetty相关推荐
- 【转】Maven Jetty 插件的问题(css/js等目录死锁)的解决
Maven Jetty 插件的问题(css/js等目录死锁,不能自动刷新)的解决: 1. 打开下面的目录:C:\Users\用户名\.m2\repository\org\eclipse\jetty\j ...
- java jetty eclipse_用Eclipse+Maven+Jetty构建Java Web开发环境(详细笔记)
(软件环境) 『系统』Windows 10 x64 『JAVA』JDK 1.8.0_91 『Eclipse』 Eclipse-oxygen 『Maven』 apache-maven-3.6.3 『Je ...
- 天生一对Maven2+Jetty -- Maven2创建并管理WebApp,并使用Maven Jetty Plugin在Eclipse中调试...
天生一对"Maven2+Jetty" -- Maven2创建并管理WebApp,并使用Maven Jetty Plugin在Eclipse中调试 Maven2代比1代改进很多,其中 ...
- 使用Maven Jetty插件
尽管很长一段时间以来我一直在使用Maven,但直到最近我才使用过Jetty插件. 为了能够测试REST客户端,我创建了一个Servlet,向我显示了所有传入的参数和带有传入请求的标头. 为了在容器中运 ...
- Eclipse / Intellij Idea配置Git+Maven+Jetty开发环境
最近公司给加配了Mac,本想着花一个小时的时间搭好开发环境,最后全部弄好却用了一上午,因为之前在windows上搭建环境的过程中遇到的好多问题在Mac环境下也遇到了,所以决定再花点时间把搭建环境的过程 ...
- 搭建IntelliJ IDEA+maven+jetty+SpringMVC 开发环境(二)
2017一月 23 转载自:http://blog.csdn.net/jdjdndhj/article/details/54691894 搭建IntelliJ IDEA+maven+jetty+Spr ...
- 搭建IntelliJ IDEA+maven+jetty+SpringMVC 开发环境(一)
2017一月 16 转载自 http://blog.csdn.net/jdjdndhj/article/details/54572439 原 搭建IntelliJ IDEA+maven+jetty+S ...
- JAXWS CXF HelloWorld + MyEclipse + Maven + Jetty Byron自學視頻01
JAXWS CXF HelloWorld + MyEclipse + Maven + Jetty Byron自學視頻01 Description: 使用 Apache CXF 建置 WebServic ...
- 菜鸟学Java(十九)——WEB项目测试好帮手,Maven+Jetty
做WEB开发,测试是一件很费时间的事情.所以我们就应该用更简单.更快捷的方式进行测试.今天就向大家介绍一个轻量级的容器--jetty.今天说的etty是Maven的一个插件jetty-maven-pl ...
- maven jetty/tomcat/wildfly plugin部署应用到本地容器
2019独角兽企业重金招聘Python工程师标准>>> <project xmlns="http://maven.apache.org/POM/4.0.0" ...
最新文章
- Java 开发技巧详细知识体系总结
- java exchange发邮件_java发送exchange邮件问题
- 测试眉形的有哪个软件_心理测试:你的眉形是下面的哪种?测你生来命运如何!超准...
- Nutanix助力五矿证券迈向金融混合云2.0
- 解决上传文件或图片时选择相同文件无法触发change事件的问题
- XP硬盘安装Ubuntu 10.10双系统图解(转)
- C++ const相关内容学习
- java ldap 父_java – DirContext:Active Directory Ldap请求:获取具有父组的用户组
- 各种乐器与人声的频率特性说明
- 【OpenCV学习笔记】【函数学习】十六(Rect参数介绍)
- Python最新官方教程中文版,火了!!
- ZooKeeper典型应用场景
- Ubuntu配置maven环境变量
- 创建模式之工厂、工厂方法、抽象工厂与建造者(builder)
- mysql备份导出数据库结构_MySql数据库导出完整版(导出数据库,导出表,导出数据库结构)详解...
- Sketch入门基础-画布、Artboard(画板)功能介绍
- iOS 应用内购买基础教程 swift篇
- Android学习网址大全
- 【2017秋季校园招聘笔经面经专题汇总】
- 腾讯安全与青藤云安全联合发布“天眼云镜”主机安全产品