最近搞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了。

  

一般项目转为Maven项目所遇到的问题的更多相关文章

  1. Eclipse使用之将Git项目转为Maven项目, ( 注意: 最后没有pom.xml文件的, 要转化下 )

    Eclipse使用之将Git项目转为Maven项目(全图解) 2017年08月11日 09:24:31 阅读数:427 1.打开Eclipse,File->Import 2.Git->Pr ...

  2. 普通项目转为maven项目及相关操作说明

    普通项目转为maven项目及相关操作说明 1 原项目简述 如图,一般的项目大致包括三类路径:src,源码路径:test,单元测试路径:lib第三方类包路径. 示例项目中,BaseDao类依赖于mysq ...

  3. 如何用Eclipse将普通的JavaWeb项目转为Maven项目

    最新自己的第一个项目差不多稳定运行之后 想着将项目转为Maven项目.于是参考网上成功的将自己的普通的项目转为了maven项目,现在记录一下: 0.普通的java项目的结构如下: 1.接下来开始进行正 ...

  4. web项目转为maven项目

    声明一下项目本来就是maven项目,只是刚开始部署的时候转为maven项目!!! 2.查看POM文件 3.导入依赖jar包(编译,运行,打包) 4. 注意项目为Maven+java 加载jar包小技巧

  5. 老项目转为maven的步骤具体说明

    可先阅读 关于已有项目转为maven的一点看法 新建maven项目要点 事实上之前已转过几个.但忘了记录下来.今天又转了一个项目,补记录一下. 步骤 1.写pom.xml 最耗费时间的一步.由于不用m ...

  6. 如何把maven项目转为eclipse项目

    如何把maven项目转为eclipse项目,按照如下操作便可. 在cmd窗口, 载cmd窗口进入到maven项目所在目录下,输入如下命令: mvn eclipse:eclipse 这样便可.

  7. eclipse web项目转maven项目

    ps:好久没写博客了,工作了人就懒了,加油加油,up,up 1 eclipse web项目目录 /web app src com.xx.xx *.properties *.xml WebRoot ​W ...

  8. 将Maven2项目转为MyEclipse项目

    现在项目中,大家开始用jetty.它不用像在MyEclipse中使用Tomcat那样要部署,也不用像在Tomcat中那样,要把应用都放到webapp文件夹下.jetty可以直接用你的项目的目录结构. ...

  9. 普通 Java 项目转换为 Maven 项目

    普通 Java 项目转换为 Maven 项目 本文为原创文章,转载请注明出处.源码已分享至GitHub. 本文提供一个完整可行的将遗留项目转换为Maven项目的步骤.至于转换Maven构建项目的好处不 ...

随机推荐

  1. SQLite 数据库安装与创建数据库

    嵌入式关系数据库 Ubuntu $ sudo apt-get install sqlite3 sqlite3-dev CentOS, or Fedora $ yum install SQLite3 s ...

  2. 查看并修改Linux主机名命令hostname

    查看主机名 hostname可以查看主机名 export也可以查看 修改主机名 echo new-hostname > /proc/sys/kernel/hostname (系统启动时,从此文件 ...

  3. 【文献阅读】Augmenting Supervised Neural Networks with Unsupervised Objectives-ICML-2016

    一.Abstract 从近期对unsupervised learning 的研究得到启发,在large-scale setting 上,本文把unsupervised learning 与superv ...

  4. oracle索引INdex

    索引是与表相关的一种可选择数据库对象.索引是为提高数据检索的性能而建立,利用它可快速地确定指定的信息. 索引可建立在一表的一列或多列上,一旦建立,由ORACLE自动维护和使用,对用户是完全透明的.然而 ...

  5. vs中使用M_PI的问题及解决 角度转弧度&根据弧度计算圆周上点的坐标的方法

    M_PI 是一个宏定义,圆周率的定义           C/C++ code #define M_PI 3.14159265358979323846 此宏定义和编译器有关,TC中M_PI宏就定义在& ...

  6. ios 添加全屏返回手势

    1 建立导航控制器 2.导航控制器添加如下代码 - (void)viewDidLoad { [super viewDidLoad]; id target = self.interactivePopGe ...

  7. Android 关于软键盘

    一..弹出的时候显示Editext框 添加布局replay_input <?xml version="1.0" encoding="utf-8"?> ...

  8. VS中Component Class、User Control及Custom Control的区别 .

    .NET Framework 为您提供了开发和实现新控件的能力.除了常见的用户控件外,现在您会发现,您可以编写能执行自身绘图的自定义控件,甚至还可以通过继承扩展现有控件的功能.确定创建何种类型的控件可 ...

  9. POJ3182 The Grove[射线法+分层图最短路]

    The Grove Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 904   Accepted: 444 Descripti ...

  10. Times[2017-01-25at JiNan]

    Times[问题描述 ]小 y 作为一名资深的 dotaer,对视野的控制有着深刻的研究.每个单位在一段特定的时间内会出现在小 y 的视野内,除此之外的时间都在小 y 看不到的地方.在小 y 看来,视 ...