之前使用的tomcat插件时是 依赖的模块时通过 jar包的方式放入到web项目中的lib中,如果当依赖的模块发生改变时 。 需要重新编译 然后打成jar包 放在web项目的lib中 这种 方式显然非常的繁琐。
从最开始的使用
maven-tomcat-plugin、 cargo-maven2-plugin、以及jetty-maven-plugin 每种方式都尝试过。
最终选择使用jetty-maven-plugin 作为web容器 来实现。
项目的结构大致是:
midea-project --顶级项目(pom) 用来管理midea-common 、midea-busi 、midea-webapp、midea-entity
midea-common --公共模块(jar)
midea-busi --业务模块(jar)
midea-entity --实体(jar)
midea-webapp --web模块(war)
midea-webapp 依赖 midea-busi 。而midea-busi 依赖midea-common 和 midea-entity
把midea-webapp 项目部署到jetty容器中,可以实现随时改动midea-common 、midea-busi 模块时不需要手动启动jetty容器。而jetty容器会自动扫描到改动的java文件自动重新启动jetty服务。
maven项目的创建以及配置也不多说了,网上很多。
然后,在web项目中的pom.xml文件中加入plugin插件:
<build>
<plugins>
<!-- jetty插件用于部署web项目; -->
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>8.1.0.v20120127</version>
<configuration>
<!-- 扫描时间 -->
<scanIntervalSeconds>10</scanIntervalSeconds>
<!-- 项目上下文 -->
<webApp>
<contextPath>/mideaAdmin</contextPath>
</webApp>
<connectors>
<connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
<port>9999</port>
<maxIdleTime>60000</maxIdleTime>
</connector>
</connectors>
<stopPort>8191</stopPort>
<stopKey>ts</stopKey>
</configuration>
<!-- 在执行install操作时,启动jetty容器. -->
<executions>
<execution>
<id>start-jetty</id>
<phase>install</phase>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<finalName>mideaAdmin</finalName>
</build>
配置完插件之后,在Debug Configration中配置如下:
当maven执行install操作时 就会启动jetty容器。
控制台输出如下就代码启动成功。