Maven编译多子项目依赖

来源:互联网 发布:执行云计算的服务器 编辑:程序博客网 时间:2024/04/30 14:10

早在某公司实习的时候就听闻过Maven,只是听大神简单的介绍过,自己没有实习做过。之前做Android 的时候主要是用gradle(不过真心不熟),大概有点知道Maven的作用,这次来深圳某公司实习,老板叫用Maven 编译C++,虽然事实证明老板的想法有点错误,不过也基于这个,还是稍微正规的学了一发Maven(当然是自学了,除了C++其他都是自学的)。


Maven简介

Maven其实主要就是解决项目编译和项目依赖的问题,在大型项目中很有优势。

例如你的一个项目中有几十外部依赖包,和你自己写的一些包,如果是不用Maven这种东西的话,你得一个一个包的下载,这样比较效率低下,而且一旦你用的包有更新,你又要重新去下载,可能在小项目中这倒没什么,但是在正规的大项目中,外部包的更新换代对项目还是有很大的影响,如果一个外部包有漏洞,可能给黑客攻击的机会,这个时候就必须得更新包。

所以Maven就应运而生,在Maven中只要在一个pom文件中,做一些配置,就可以自动下载所需要的依赖包到本地仓库,然后多个项目可以共享本地仓库的依赖包。如果依赖包需要更新的时候,只需要改一下版本号,就可以了。而且Mavenpom是每个项目(模块)都会有,这些pom中可以有继承的关系,所以有一些依赖包只要在一个parent里面定义就可以了,而且在子pom中也可以自己覆写父pom的定义。

这里只是简单介绍一下Maven的一些概念,关于安装Maven网络上已经有很多教程了,这里就不重复造轮子了,还有Maven的详细原理,这里就给一些自己学习过程的中一些资料:

Maven 入门详解 http://ifeve.com/maven-1/ 

Maven Linux上部署项目 

http://www.oracle.com/technetwork/cn/community/java/apache-maven-getting-started-1-406235-zhs.html 


Maven多项目构建

 下面介绍一下在网上没有的东东,在WindowsIntellij里面部署一个多项目Maven的过程以及踩过的坑。


注意:这里介绍的多项目是一个大项目下包括多个子项目,本身大项目中的pom是起到配置作用,不生成jarwar文件,运行在Main项目中,Main项目中调用Part1Part2两个项目中的函数

 

首先新建一个Maven项目,取名MavenProject生成的时候不要用模板(如果是自己的项目有一定类型可以用模板,这里只是一个教程,所以没有用模板)。然后生成之后删掉scr文件夹。然后再添加三个模块,取名MainPart1Part2groupID继承MavenProject的,artifactID自己写。然后这个时候目录是这样的


 

然后就可以再main(是main不是Main)文件夹里面的java文件夹里面写代码,但是这个第一个坑来了,如果你点击那个java右键添加,里面没有java class的选项,即使你添加了file,后缀是java,也不行,我找了好久都没找到解决方法,一直以为是配置出问题了,结果这里是IDE的锅,这里要去file -> project structure-->module里面设置一下,这个时候就要一个一个的mark as,然后就可以正常些代码了,这个坑找了好久的问题。

 

 

写好代码,如下图 

main.java

 

Part1.java

 

Part2.java

 

 

由于这里是Main要引用到part1part2中的东西,所以在mainpom里面配置一下依赖,part1和part2中的pom由于并没有依赖,所以用自动生成的就可以了

 

这样就会引用到这两个库了,可以在右边的一个控制板中看到(那个九十度倒着的M字样,如果是intellij中的),记得刷新一下

 

 

然后这个时候点Maininstall就可以了,也可以用mvn install的命令

 


Maven依赖包打包生成

这个时候在main里面的target就会生成一个jar包,然后你一运行就会发现,clssNotFound,因为maven打包默认不会把依赖包打进去,找到不到依赖的part1和part2。所以这里就是第二坑,这里在网上查各种复杂的方法,一堆麻烦,而且我也一直以为不用插件,只需要配置一下就可以了,一直没找到。后来找到一个网站,那个配置方法很简单,不过还是用了插件

 

在pom加上这段就行了,会下载一个插件,貌似公司的项目把依赖包打进去也是用这个,maven官方出的插件,值得信赖。

这是这段代码的来源:http://lvjun106.iteye.com/blog/1849803 

最后当然就是搞定咯,但是花了一下午…….

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 微信视频清理了怎么办 牛仔短裤买大了怎么办 淘宝图片打开变大了怎么办 同城换公司社保怎么办 劳务不给交社保怎么办 好多工厂外包工不交社保怎么办 外包公司没有交社保怎么办 外包公司不给交社保怎么办 银行取100万现金怎么办 给老外发警告信后怎么办 照片上传是歪的怎么办 日亚不能直邮的怎么办 电话信息被卖了怎么办 被亚马逊跟卖了怎么办 玉米出芽后土壤不够湿怎么办 雨伞请输入授权码怎么办 网页放手机端后看不了怎么办 微信收款码存在违法行为怎么办 tst优惠码密码忘了怎么办 扩展器登录不上怎么办 微信学法小程序积分不更新怎么办 开发商不给办房产证怎么办 传淘宝产品规格不匹配怎么办 刚买的手机想退怎么办 空调主机空间不足不散热怎么办 lol网速快延迟高怎么办 4g手机延迟高怎么办 天气冷鼻炎就犯怎么办 天气冷宝宝发烧了怎么办 wp手机开机忘记了密码怎么办 微商退货不退款怎么办 微商退货了不退款怎么办 微商退货后不退款怎么办 有赞买东西付款没发货怎么办 赞礼号掉了东西怎么办 万达贷系统维护还不了款怎么办 qq文件发不出去怎么办 1688分销没有传淘宝怎么办 京东的货运代理怎么办 天天练推广期没了怎么办 微信自动建群怎么办