使用maven单独部署定时任务等工程
来源:互联网 发布:全民枪战qcwo5炎黄数据 编辑:程序博客网 时间:2024/06/09 16:58
由于系统有一些数据需要定时去跑,所以需要单独部署。以前进行网站开发时,没有使用maven进行代码管理,导致于最后部署
定时任务有一些弊端:
1.需要将很多依赖工程同步部署,即使是jar包形式,也需要先检查依赖的工程是否有更新,重新编译取包;
2.使用ant进行代码管理,编译时各种依赖关系比较复杂(多个build.xml文件)
3.shell脚本执行某个java类时需要指明classpath,这个还是比较复杂的
由于以上原因,再结合目前系统使用了maven管理代码,故使用maven单独部署定时任务。由于初步使用,可能不尽完美,等后
续继续完善。
1.使用pom文件进行依赖管理。为了便于管理定时任务,在父pom下新建了一个模块,该模块下为所有的定时任务。所有的模块
都在父pom下,所有的模块的子模块打成的jar包也都定义在该父pom下。这样的好处就是:定时任务代码调用任何系统中的api时直
接在定时工程的pom中引入依赖即可。
2.在服务器上直接部署父pom和定时工程,如果有本地maven库,并且不全,可以先install。然后需要执行mvn compile进行编
译。
这里需要安装maven,maven是免安装的,使用wget 命令得到tar.gz包,然后解压移动,设置环境变量即可。参
照http://www.blogjava.net/caojianhua/archive/2011/04/02/347559.html
3.这里是最关键的一步了,使用maven进行单独部署的魅力就在于这里。对,就是maven的exec-maven-plugin插件。maven
设计这个插件出来个人认为目的就是让开发人员脱离烦躁的classpath梳理,maven帮你获得classpath,简化启动程序的步骤,
唉,maven这是在抢程序猿的生意啊,程序猿以后都是傻瓜了...
开个玩笑,maven这个还是十分人性化的,可以使我们从十分繁琐并重复的劳动中解脱出来,去进行更伟大的编码事业!话不
多说,exec插件主要有exec:java和exec:exec两种使用方法。后者要比前者功能强大很多,主要区别在于exec:exec总是启动一个
新的线程,并且在只剩下守护线程时退出,即关闭应用程序;而对于exec:java,当所有非守护线程结束时,守护线程会被join或者
interrupt,应用程序不会关闭(本程序使用了exec:java,在代码的末尾使用了System.exit(0)来进行手动退出)。区别参
考:http://blog.csdn.net/bluishglc/article/details/7622286
exec:java的主要命令:
不存在参数的情况下:mvn exec:java -Dexec.mainClass="***.Main"
存在参数:mvn exec:java -Dexec.mainClass="***.Main" -Dexec.args="arg0 arg1 arg2"
指定运行时库:mvn exec:java -Dexec.mainClass="***.Main" -Dexec.classpathScope=runtime
exec:exec的主要命令参照上面链接。
4.提示一下遇到的问题
(1).执行exec命令时报错找不到执行类。
原因:-Dexec.mainClass的参数值是指定类名的,上面的命令中的Main是类名不是指在类名后加该字符串。这个让我吃了些小亏。
(2).执行maven的命令记着要在有pom的路径下执行
(3).Windows下书写的shell脚本是比较坑爹的。在dos和Windows下一次换行则实际上输入的是回车和换行;而Linux下换行实际上输入的就是换行。
解决办法:或在Windows下按照Unix格式保存shell脚本;或在Linux上使用vi的:set ff=unix方法改变脚本格式;或直接在Linux上编写脚本。
参照:http://blog.csdn.net/guoshaogang/article/details/7275718
由于是简单使用,不深入,高手勿喷了则个~~~
共勉!
- 使用maven单独部署定时任务等工程
- 使用Spring做定时任务工程
- maven构建使用Spring执行定时任务
- eclipse 使用maven构建springboot+定时任务
- 使用Eclipse创建和部署maven工程
- JFinal定时任务 maven
- Maven 工程的部署
- 集群化部署定时任务
- java定时任务 Timer等
- 使用maven部署一个工程到服务器上
- IDEA 旗舰版 使用Maven创建Web工程 并部署tomcat
- IDEA 旗舰版 使用Maven创建Web工程 并部署tomcat
- crontab定时任务不执行,单独运行sh生效
- 定时任务 quartz使用
- 使用crontab定时任务
- 使用定时任务crontab
- 定时任务,AlarmManager使用
- workerman定时任务使用
- java的基本特征:封装,继承,多态
- 传智播客html视频教程(第六季) 杨中科
- 图片转换工具类
- svn 命令行 批量删除和批量添加
- 将窗口最小化到托盘内
- 使用maven单独部署定时任务等工程
- mac os x环境,ADB server didn't ACK
- Linux大众分区方案
- C#编写NotifyIcon 将窗口最小化到托盘
- 聚合天气预报
- 配置程序及解决Command /usr/bin/codesign failed with exit code 1错误
- POJ 2289 Jamie's Contact Groups 二分图多重匹配
- windows2003下安装Apache、PHP、MySql
- 23.JavaWeb基础 Struts 1 DispatchAction(分发Action)