- 浏览: 1527309 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (225)
- JAVA (27)
- Spring (49)
- Linux (51)
- JavaScript (8)
- Scrum (23)
- IDE (2)
- JSON (2)
- Solr (0)
- Webharvest (0)
- Hibernate (8)
- 杂谈 (3)
- Windows 7 (4)
- 持续集成 (23)
- tomcat (3)
- Android (1)
- SpringSecurity (11)
- Maven (9)
- jotm (3)
- C3P0 (1)
- Active Directory (2)
- cas (1)
- JQuery (2)
- ajax (1)
- plsql (2)
- nginx (4)
- apache (1)
- thrift (7)
- python (3)
- oracle (4)
- php (2)
- redis (1)
- fedora (1)
- windows7 (0)
- SVN (1)
- NFS (1)
- SAMBA (1)
- Atomikos (1)
- apache-poi (1)
- mysql (2)
- vncserver (1)
- mac (2)
- firefox (1)
- JIRA (1)
- p6spy (1)
- git (1)
- github (1)
- gitlab (1)
- gogs (1)
- Druid (1)
- MyBatis (1)
- docker (8)
- zabbix (1)
最新评论
-
lialatd:
您好,我用您的方法通过java api往jira系统中添加is ...
JIRA REST API ---- JAVA -
sprcen945:
可以了,是因为没加intercept-url 的拦截, 尼玛, ...
SpringSecurity3.X--Cas client 配置 -
sprcen945:
请问为什么我配了security.xml后切入点不起作用(之前 ...
SpringSecurity3.X--Cas client 配置 -
linxingyul:
根据楼主的代码 继承了WebMvcConfigurationS ...
SpringMVC4零配置--Web上下文配置【MvcConfig】 -
java_老头:
MvcConfig.java的FilterType.ANNOT ...
SpringMVC4零配置--Web上下文配置【MvcConfig】
一。远程部署
1.使用cargo-maven2-plugin插件
<build>
<finalName>hello</finalName> <!-- war包名称 -->
<plugins>
<plugin>
<!-- 指定插件名称及版本号 -->
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.0.3</version>
<!-- 插件的Tomcat6.x配置 -->
<configuration>
<wait>true</wait> <!--是否说明,操作start、stop等后续操作必须等前面操作完成才能继续 -->
<container> <!-- 容器的配置 -->
<containerId>tomcat6x</containerId> <!-- 指定tomcat版本,tomcat7x不支持远程部署,可以为tomcat5x,tomcat6x -->
<type>remote</type> <!-- 指定类型:表示远程部署-->
</container>
<configuration> <!-- 具体的配置 -->
<type>runtime</type> <!-- 类型,tomcat运行时 -->
<properties> <!-- 配置属性 -->
<cargo.tomcat.manager.url>http://localhost:8080/manager</cargo.tomcat.manager.url> <!-- 管理地址 -->
<cargo.remote.username>admin</cargo.remote.username> <!-- Tomcat用户名 -->
<cargo.remote.password>admin</cargo.remote.password> <!-- Tomcat密码 -->
</properties>
</configuration>
</configuration>
<executions>
<!-- 执行的动作,如果不指定,可以执行执行mvn cargo:redeploy ,需要在settings.xml中声明groupId -->
<execution>
<id>verify-deployer</id>
<phase>install</phase> <!-- 关联到install阶段,执行mvn install即可完成部署 -->
<goals>
<goal>redeploy</goal><!-- 实际调用cargo的redeploy目标 -->
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
二。本地部署
1.使用cargo-maven2-plugin插件
1.1standalone
启动命令:mvn install
<build>
<finalName>hello</finalName>
<plugins>
<plugin>
<!-- 指定插件名称及版本号 -->
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.0.3</version>
<!-- 插件的Tomcat6.x配置 -->
<configuration>
<wait>true</wait> <!--是否说明,操作start、stop等后续操作必须等前面操作完成才能继续 -->
<container> <!-- 容器的配置 -->
<containerId>tomcat7x</containerId> <!-- 指定tomcat版本 -->
<home>F:\maven_workspace\apache-tomcat-7.0.5-windows-x86\apache-tomcat-7.0.5</home> <!-- 指定Tomcat的位置 -->
</container>
<configuration> <!-- 具体的配置 -->
<type>standalone</type> <!-- 类型,standalone:复制tomcat配置到指定位置 existing:直接部署到tomcat的webapps -->
<home>${project.build.directory}/tomcat7</home> <!-- 指定复制Tomcat到什么位置,真正的工作目录 -->
<properties> <!-- 配置属性 -->
<cargo.servlet.port>8081</cargo.servlet.port> <!-- 端口 -->
</properties>
</configuration>
</configuration>
<executions>
<!-- 执行的动作,如果不指定,可以执行执行mvn cargo:start,需要在settings.xml中声明groupId -->
<execution>
<id>verify-deployer</id>
<phase>install</phase> <!-- 关联到install阶段,执行mvn install即可完成部署 -->
<goals>
<goal>start</goal> <!-- 实际调用cargo的start目标 -->
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
1.2existing
启动命令:mvn install
<build>
<finalName>hello</finalName>
<plugins>
<plugin>
<!-- 指定插件名称及版本号 -->
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.0.3</version>
<!-- 插件的Tomcat6.x配置 -->
<configuration>
<wait>true</wait> <!--是否说明,操作start、stop等后续操作必须等前面操作完成才能继续 -->
<container> <!-- 容器的配置 -->
<containerId>tomcat7x</containerId> <!-- 指定tomcat版本 -->
<home>F:\maven_workspace\apache-tomcat-7.0.5-windows-x86\apache-tomcat-7.0.5</home> <!-- 指定Tomcat的位置 -->
</container>
<configuration> <!-- 具体的配置 -->
<type>standalone</type> <!-- 类型,standalone:复制tomcat配置到指定位置 existing:直接部署到tomcat的webapps -->
<home>F:\maven_workspace\apache-tomcat-7.0.5-windows-x86\apache-tomcat-7.0.5</home> <!-- 指定Tomcat的位置 -->
</configuration>
</configuration>
<executions>
<!-- 执行的动作,如果不指定,可以执行执行mvn cargo:start,需要在settings.xml中声明groupId -->
<execution>
<id>verify-deployer</id>
<phase>install</phase> <!-- 关联到install阶段,执行mvn install即可完成部署 -->
<goals>
<goal>start</goal> <!-- 实际调用cargo的start目标 -->
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
2.使用jetty-maven-plugin
启动命令:mvn install
<build>
<finalName>hello</finalName>
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>8.0.4.v20111024</version>
<configuration>
<scanIntervalSeconds>10</scanIntervalSeconds>
<webAppConfig>
<contextPath>/test</contextPath><!-- 测试时没有起作用,只能通根路径访问,既localhost:8080,应该是maven版本的问题,maven2下使用其它版本的jetty-maven-plugin,构建时会报错,maven3下使用该插件没有问题 -->
</webAppConfig>
</configuration>
<executions>
<!-- 执行的动作 -->
<execution>
<id>verify-deployer</id>
<phase>install</phase>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
以上插件如果要在命令行执行其各自的命令简写,需要在settings.xml中配置
<pluginGroups>
<pluginGroup>org.mortbay.jetty</pluginGroup>
<pluginGroup>org.codehaus.cargo</pluginGroup>
</pluginGroups>
三。本地测试-tomcat热部署debug
maven tomcat eclipse debug 调试 + hot code replace 热部署
参考资料:http://jaymsimusic.iteye.com/blog/1160118
maven tomcat eclipse debug 调试 + hot code replace 热部署
文章分类:Java编程上网找了好久都没找到,网上只有运行mvn package 打包,并利用tomcat manager功能部署到tomcat 下的文章,如果我修改了一个java文件,不得不重新打包部署一下,这佯做开发效率极低,影响用maven的心情,经过自己的反复试验,终于可以实行hot code replace了,就是修改了一个文件不用重新部署了,就可以使用debug了。
试验环境:
eclipse+ tomcat+ tomcatPlugin+maven3 关于怎么安装,就得大家自己找文章了
我们用petclinic项目为大家演示热部署。petclinic是spring官方的一个非常经典的例子
petclinic svn路径 https://src.springframework.org/svn/spring-samples/petclinic/trunk
配置使用
1。修改tomcat的server.xml文件,加入
1
<Context docBase="E:\workspace\petclinic\src\main\webapp" path="/petclinic" reloadable="false"></Context>
意思是指定tomcat运行项目的目录,在这里我们指定E:\workspace\petclinic\src\main\webapp ,src\main\webapp 是maven web规范,存放java web的相关资源。
2。右键单击项目,选择build path,将default output folder设置为 petclinic/src/main/webapp/WEB-INF/classes,并将
petclinic/src/main/resource的Excluded设置为None,默认是**,意思是让eclipse编译java和resource文件编译到petclinic/src/main/webapp/WEB-INF/classes目录
3。 运行 mvn war:inplace petclinic/src/main/webapp/WEB-INF下,就有lib文件了
4。用eclipse插件运行tomcat,项目就可以运行了,修改任意一java类,可以实时生效,打断点也能够调试了。
注意:要关联tamcat下的jar包。
该配置可以 聚合项目的debug,在需要debug外部项目时手工关联即可。
举例:.classpath
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="src/main/webapp/WEB-INF/classes" path="src/main/resources"/>
<classpathentry kind="src" output="src/main/webapp/WEB-INF/classes" path="src/main/java"/>
<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
<classpathentry kind="src" output="target/test-classes" path="src/test/resources"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v7.0"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>
但这样会有一个问题,就是如果有需要替换为maven属性的资源文件就不会被替换了。可以使用jetty-maven-plugin解决这个问题,不过就是path尚不好使。
所以,可以使用上面的配置方式与maven-antrun-plugin插件结合,进行资源文件的替换,各个环境,可以结合profile使用
也就是说,本地开发使用本地的资源进行开发和测试,其它环境在使用maven进行替换
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.3</version>
<executions>
<!-- 执行的动作 -->
<execution>
<id>ant-copy</id>
<phase>prepare-package</phase> <!-- 绑定到prepare-package 阶段-->
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks> <!-- 调用ant的copy任务执行资源文件替换 -->
<echo message="prepare-release run" />
<copy todir="${project.build.directory}/classes/config" overwrite="true">
<fileset dir="${project.basedir}/config/release" />
</copy>
<echo message="prepare-release completed!" />
</tasks>
</configuration>
</execution>
可以定义多个动作
</executions>
</plugin>
发表评论
-
docker学习笔记之六:使用阿里云镜像仓库加速以及启用远程访问
2016-10-26 15:44 10484一、镜像加速 1)注册个帐号 https://dev. ... -
maven插件--Hibernate自动生成代码
2016-10-07 12:16 1175参考资料:http://blog.csdn.net/kenh ... -
maven插件--MyBatis自动生成代码
2016-10-07 12:08 2186参考资料:http://blog.cs ... -
《Maven实战》学习笔记(5)--不同环境配置
2011-12-09 17:12 2115一般来说,项目的配置文件都在resources下面,默认mav ... -
《Maven实战》学习笔记(4)--常用插件
2011-12-09 17:12 2022需要注意一些插件版本,因为有些版本在下载依赖是会出现问题,所以 ... -
《Maven实战》学习笔记(3)--仓库配置
2011-12-09 17:11 4571本地仓库配置 本地仓 ... -
《Maven实战》学习笔记(2)--POM简单设置
2011-12-09 17:09 1935基本信息: <modelVersion> ... -
《Maven实战》学习笔记(1)--安装maven
2011-12-09 17:08 18261.安装maven 首先确 ...
相关推荐
maven-project-info-reports-plugin-2.2.jar
maven-archetype-quickstart-1.1.jar包下载
解决tomcat8-maven-plugin-3.0-r1655215.jar阿里云同有的问题。放到路径org\apache\tomcat\maven\tomcat8-maven-plugin\3.0-r1655215\就可以了
maven-deploy-plugin-2.7.jar
maven-site-plugin-3.3.jar
maven-archetype-webapp-1.0.jar,下载,如果有需要的同志可以自己下载,。
maven-jar-plugin-3.1.1.jar
maven-resources-plugin-2.4.1.jar
maven-deploy-plugin-2.8.2.jar
maven-maven-plugin-1.4-sources.jar
maven-project-info-reports-plugin-2.1.jar
maven-plugin-parameter-documenter-2.0.jar
maven资源 apache-maven-3.3.9-bin.zip
maven-shared-utils-3.2.1.jar
maven-notice-plugin-1.0.1.jar
解决Unable to create project from archetype [org.apache.maven.archetypes:maven-archetype-quickstart:1.1] 1. 下载maven-archetype-quickstart-1.1.jar 文件地址: 2.cmd窗口执行mvn install:install-file -...
Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.5:clean (default-clean) on project
maven-scm-client-1.4.jar
maven-svn-revision-number-plugin-1.7.jar 资源共享,有需要其他jar包的可以在评论留言,看到后我会陆续上传。
新建maven项目失败,不能下载maven-archetype-webapp-1.0.jar包