Maven项目在eclipse上进行热部署
?? 最近本人在学习Maven,觉得Maven管理确实很方便。Maven项目能够在eclipse上进行热部署,那就更好了。总结了前人的一些用法,有两种方法可以实现热部署。
?? 方法一:
?? 在eclipse按照Maven插件就不累赘了,能够google到很多信息。第一种方法我们就采用Maven的打包上传的方式实现。
? 第一步:创建项目一个Maven项目。
?第二步:在项目上点击右键
?build path? ->? configure build path ->Source
?将src/main/java和src/main/sources 源文件夹的Output folder指向 target/classes
?将跟test相关的源文件夹的Output folde指向target/test-classes。
第三步:项目右键 -> properties -> project Facets
将Dynamic Web Module勾选上,版本根据自己的需要选上。在右边runtimes新加上tomcat环境,这样就会把javaee依赖的jar导入大项目中。
第四步:配置tomcat的用户信息。进入tomcat的conf目录,编辑tomcat-user.xml文件夹。
<role rolename="manager"/> ? <role rolename="manager-script"/> <role rolename="admin-gui"/> ? <role rolename="manager-gui"/>?? ?<user username="tomcat" password="tomcat" roles="manager,manager-gui,manager-script,admin-gui" />
?在修改Maven conf目录中的settings.xml文件,添加
<server> <id>tomcat</id> <username>tomcat</username> <password>tomcat</password> </server>
?第五步:修改pom.xml
<plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>tomcat-maven-plugin</artifactId> <version>1.1</version> <configuration> <url>http://localhost:8080/manager/text</url> <server>tomcat</server> <path>/tomcattest</path> </configuration> </plugin> </plugins> </build>
?如果tomcat 6,则<url>http://localhost:8080/manager/text</url>改为<url>http://localhost:8080/manager/</url>?
到现在,所有的修改工作已经完成。
在到项目上run as ->? mvn build .在goals中输入package tomcat:deploy。Maven将项目打包宾部署到tomcat中。经测试成功。
?
?
方法二:
???? 方法二就是把Maven项目变成传统项目一样的。修改tomcat中的server.xml,指向到项目径路上。
?????在方法一的第二步,将src/main/java和src/main/sources 源文件夹的Output folder指向src/main/webapp/WEB-INF/classes
?将跟test相关的源文件夹的Output folde也指向src/main/webapp/WEB-INF/classes。这样,所有的文件都将编译到classes文件夹下边,如果在把jar复制到WEB-INF中,就跟传统的项目文件路径一样了。
?
?修改pom.xml让jar部署到WEB-INF中去。
<build> <finalName>example</finalName> <sourceDirectory>src/main/java</sourceDirectory> <testSourceDirectory>src/test/java</testSourceDirectory> <resources> <resource> <directory>src/main/resources</directory> </resource> </resources> <testResources> <testResource> <directory>src/test/resources</directory> </testResource> </testResources> <outputDirectory>src/main/webapp/WEB-INF/classes</outputDirectory> <testOutputDirectory>src/main/webapp/WEB-INF/classes</testOutputDirectory> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.8</version> <configuration> <outputDirectory>src/main/webapp/WEB-INF/lib</outputDirectory> <excludeTransitive>false</excludeTransitive> <stripVersion>true</stripVersion> </configuration> </plugin> </plugins> </pluginManagement> </build>
?
?再run?as?-> maven build -> 在goals中 输入 dependency:copy-dependencies
所有的jar都部署到WEB-INF/lib中去了,就跟传统的项目没有区别了。可以再用jrebel.jar实现热部署。
?