最近使用Kettle做定时数据抽取,因为Job更新或需求变更,修改Bug等种种原因,需要对重跑Job一般是针对每天的数据重跑一次。刚开始的做法是直接在自己的开发机器上重跑,这样速度比较慢,因为这时候你的开发机相当于数据的中专站,这样外网数据来回传输速度很慢重新集计一个月的数据可能要花半小时以上。因此就萌生了把集计程序打成jar直接放到服务器上去执行,这样内网传输速度就快了很多。

之前使用IDEA自带的打包试了好几次都不成功,后面搜了一下Maven发现更简单。对应的POM文件如下:

    <build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>RunJob</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>assembly</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

其中<mainClass>RunJob</mainClass>填写含有Main的class名,然后执行以下命令:

mvn assembly:assembly
//跳过测试
mvn -Dmaven.test.skip=true assembly:assembly

打包成功后会把所有依赖Jar的class打在一个jar包中。

使用以下命令运行jar,参数依次跟在后面,如果有的话:

java -jar BuildKettleJob-1.0.jar 

最新文章

  1. 【无私分享:ASP.NET CORE 项目实战(第十四章)】图形验证码的实现
  2. vue-lazy-render: 延迟渲染大组件,增强页面切换流畅度
  3. awk 双引号vs单引号
  4. geoip2 domain
  5. mysql 各种运算对于null值的处理
  6. 安卓 DevOps:从一次推送命令到生产
  7. Caused by: java.lang.ClassNotFoundException: org.apache.commons.io.FileUtils
  8. linux系统中whereis的用法详解
  9. KMP字符串模式匹配详解(转)
  10. C语言实现界面(不通过MFC\避免遗忘)
  11. 1018 Big Number
  12. Xcode 下cocos-2dx 环境搭建
  13. Java compiler 并行编译思考
  14. MHA-Atlas-MySQL高可用集群
  15. ExtJS4.2下将表单元素放在菜单时不能进行拷贝的问题解决办法
  16. word表分页表头
  17. Linux之 Ngnix
  18. Eclipse布局问题小记
  19. cf1000C Covered Points Count (差分+map)
  20. 升级tomcat需要更改哪些配置?

热门文章

  1. MySQL用户管理
  2. 连接SQLServer时,因启用连接池导致孤立事务的原因分析和解决办法
  3. Python基础(一)
  4. linux终端指令总结
  5. 高分辨率下IE浏览器缩放导致出现右侧滚动条问题的解决
  6. .NET正则表达式基础入门(四)
  7. QML 从无到有 3 (自动更新)
  8. php中抽象类与接口的概念以及区别
  9. Lind.DDD.SSO单点登陆组件的使用(原创)
  10. (转)ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 的解决方法