最近搞CI,准备使用Maven,但以前的项目不是Maven项目,需要把项目转换为Maven项目。这遇到几个小问题,一是jar包的依赖,二是从本地仓库取出依赖jar包。

由于没有本地仓库,要手动添加jar包到本地仓库。刚开始,是进行编译,缺一个依赖包,手动添加一个,费时费力,后来学会了偷懒,写个小程序一次性从原有项目的lib包内读取jar包,分批添加,这里就产生一个小问题,jar包的版本无法还原为原有的版本号,我默认为1.0。(mvn install:install-file -DgroupId=knowledge-internal-api -DartifactId=knowledge-internal-api -Dversion=1.0 -Dpackaging=jar -Dfile=D:\workspace2\项目名\WebRoot\WEB-INF\lib\包名.jar),pom.xml文件也偷懒,写个小程序一次性添加<dependency>。

  受到原有项目的影响,也没有搞懂Maven项目的原理,用Maven打成jar包后如何运行,这里走了一些弯路。

  在pom.xml文件中配置执行的主类,

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestFile>src/META-INF/MANIFEST.MF</manifestFile>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.froad.main.FUPMain</mainClass>
</manifest>
</archive>
</configuration>
</plugin>

就可以打一个jar包,把它cp到设定的目录,比如lib包内,运行"java -jar xxx.jar",就可以运行程序。由于原有的项目有lib包,我直接把打的jar包cp到lib内运行,OK,本以为这就结束了。其实不然,标准的Maven项目没有lib包,打成的可执行jar包,运行它时,需要从从本地仓库里下载它所依赖的jar包,我这里运行,直接省了一步(从本地仓库里下载依赖包)。其实这一步也很简单,直接执行一个Maven命令(mvn dependency:copy-dependencies -DoutputDirectory=lib package)就OK了。可以用生成的lib包代替以前的包。

  这样看起来看使了,但运行起来,还是找不到依赖包,这有点让人郁闷了。后来和同事探讨,原来由于我偷懒,生成的本地仓库的版本号为1.0,这就在以前的jar包后面加了一个后缀(xx-1.0.jar),这就导致找不到依赖包。后来找到了解决方法MANIFEST.MF文件中,修改一下Class-Path,后面加上-1.0后缀,就OK了。

  

最新文章

  1. Python中的join()函数的用法
  2. super语句
  3. 【bzoj3674】 可持久化并查集加强版
  4. self和parent的用法
  5. Java NIO教程 前言
  6. 常用vi编辑命令
  7. 微软职位内部推荐-SW Engineer II for Skype
  8. Linux 图形化操作
  9. aop郁闷错误
  10. 关于Javascript函数的几点笔记
  11. c#后台验证
  12. [置顶] ※数据结构※→☆线性表结构(list)☆============双向链表结构(list double)(三)
  13. 移动端300ms点击事件的延迟
  14. C++入门篇四
  15. python2.7升级3.5教程 可用
  16. 人人网框架导入uidGenerator的ID生成方式
  17. 9.if/else/elif
  18. 学习Auxre记录
  19. Java实战_手把手编写记事本
  20. 我的主机是win 7 虚拟机是vmware,solaris10连接主机

热门文章

  1. git分支处理
  2. Asp.Net北大青鸟总结(四)-使用GridView实现真假分页
  3. redis写磁盘报错Cannot allocate memory
  4. load-on-startup 解释
  5. Android模糊效果总结
  6. ECMall验证码问题
  7. 【BZOJ4999】This Problem Is Too Simple! 离线+树状数组+LCA
  8. DSP/BIOS使用之初窥门径——滴答时钟及烧写Flash
  9. JSP九大内置对象的作用和用法总结(转发)
  10. C#winform的datagridview设置选中行