也许是本人不才,初识Maven时,被各种不明所以的教程搞得一头雾水,而在后来的使用中,我发现Maven大部分功能没有想象的那么困难。

本篇文章面向Maven初学者,希望能让其以最快的速度了解Maven并享受到它所带来的一系列好处。

[一个简单的问题]

在进行讲解前,先提问一个简单的问题。 假如你正在Eclipse下开发两个Java项目,姑且把它们称为A、B,其中A项目中的一些功能依赖于B项目中的某些类,那么如何维系这种依赖关系的呢? 笔者在使用Maven前是这样做的,将B项目打包为jar,并在A项目的Library下导入B的jar文件。 这样做有着很明显的缺点: 1.如果在开发过程中,发现B中的bug,则必须重新将B打包并对A项目进行重编译操作 2.在协同开发A项目时,为了保证其能够正常运行,要么选择将B打包入A中,要么选择将B一样发布出去并告知开发者使用方法。显然这两个方法都不太好,前者可能造成资源浪费(比如开发者可能正在开发依赖B的其它项目,B已经存储到本地了),而后者则会为项目正常运行带来风险(一旦把工作交给人工注定会带来一定的失败率)。 因此,这样手动的控制项目间依赖关系显然是一种‘拙劣’的方法。

[Maven介绍]

依据笔者看来,Maven的核心功能便是合理叙述项目间的依赖关系。 所有的Maven项目包含着一个名为pom.xml的文件,在文件中记录着自己的等字段,这些字段在创建Maven项目时填写,Maven会依据它们来定位到该项目。

在pom中的另一个关键标签是,该标签下可以包含若干个标签,而下则是上面介绍的等依赖字段,它们确定着一个唯一的项目版本。

一个典型的pom.xml[来自项目luajava]:

[Maven库]

以刚才的A、B项目为例,在A项目的pom文件中写入关联B项目,Maven会在工作区中找到B项目,并创建依赖。此时A项目可以直接访问到B项目中的类资源,而且对A调试时依然会击中B项目中设置的断点。 除去工作区的依赖关联外,Maven也可以关联一个远端镜像中的项目,在默认情况下,如果工作区中没有对应的项目记录,Maven会连接到中心仓库查找,如果找到,它会把项目下载到本地库中(Windows中本地库位于用户文档的.m2目录下),并自动设置关联。这是一个十分便利的特性,在我们需要额外jar包支持时,不再需要进行手动的下载和引入,我们仅需要将需要项目对应的依赖字段粘贴到pom的合适位置,剩下的交给Maven完成即可。

在项目A的pom.xml里面对另外一个项目B引入就可以了

[其它特性]

1.镜像源

很明显,Maven中心仓库负载比较大,而且不在国内,因此速度非常慢,有时甚至会找不到依赖。因此,尤其是在小规模团队开发这种场合下,搭建一个Maven私服会极大的提升效率。这里推荐一个Maven镜像搭建工具:Nexus:http://www.sonatype.org/nexus/使用它可以很快速方便的搭建私有Maven镜像源,之后在Maven的settings.xml里进行配置即可。

2.惰性下载src源码

在一些时候,我们需要参阅依赖项目的源文件,此时可以尝试直接双击class文件,如果Maven镜像源中存在源文件,会自动下载到本地,eclipse会自动加载并显示。

3.编译参数配置

笔者使用Eclipse Luna版,Maven默认的Java编译版本为1.5,我们可以在pom指定其编译版本,使其提升至1.7(参考luajava pom中的build标签);此外这些设置也会被诸如jenkins持续集成等自动化工具读取并进行恰当配置。

eclipse maven打包_maven的通俗易懂的用法相关推荐

  1. eclipse maven打包_Maven 学习

    1 Maven 简介 Maven 使用项目对象模型(POM,Project Object Model) 的概念,可以通过一小段描述信息来管理项目的构建.报告和文档的软件项目管理工具 2 Maven 的 ...

  2. eclipse maven打包_Maven中的几个重要概念:lifecycle, phase 和 goal

    当我们对一个项目进行打包时,maven分别执行了 验证(validate) ==> 编译源码(compile) ==> 编译测试源码(test-compile) ==> 单元测试(t ...

  3. eclipse maven打包jar 部分jsp无法访问_Maven系列教材 (九)- 在Eclipse中创建maven风格的java web项目...

    Maven系列教材 (九)- 在Eclipse中创建maven风格的java web项目 步骤1:删除j2ee目录步骤2:新建Maven 项目步骤3:这个界面点下一步步骤4: 这个界面使用webapp ...

  4. eclipse maven打包_我的Java Web之路47 - 使用Maven改造租房网工程

    本系列文章旨在记录和总结自己在Java Web开发之路上的知识点.经验.问题和思考,希望能帮助更多(Java)码农和想成为(Java)码农的人. 目录 介绍 原来的租房网工程结构 改造思路 将原有工程 ...

  5. eclipse maven打包_自动化管理项目,Maven仓库配置、安装和使用

    一. Maven有什么作用? 1.让maven仓库自动帮你下载jar包 maven项目会有一个 pom.xml文件, 在这个文件里面,只要你添加相应配置,他就会自动帮你下载相应jar包,不用你铺天盖地 ...

  6. maven 打包报错 surefire-reports for the individual test results.

    Eclipse Maven打包报错 [ERROR] [ERROR] Please refer to D:\File\workspace\izh-common-util\target\surefire- ...

  7. maven打包忽略注解_maven打包包含注释

    maven打包之后为什么class文件中没有注释了 目标 1. 将依赖第三方jar包都打进去2. 将工程java 目录下所有文件夹和配置文件,包括资源文件都打入jar包,根据目录来3. 打出jar文件 ...

  8. eclipse中linux打包,Eclipse中Maven打包程序并在Linux中运行

    Eclipse中Maven打包程序并在Linux中运行 1 在Eclipse中新建Maven工程 新建后的maven工程如下: 新建Maven工程的默认pom.xml如下,不需要修改: 4.0.0 T ...

  9. maven打包不用eclipse插件

    我们开发 一般使用eclipse ,maven也有相应的eclipse插件 ,我们可以在eclipse上 轻松的完成打包.最近测试 要我们开发打包后给她们自己部署,最后干脆让她们自己打包 自己部署算了 ...

最新文章

  1. Pinterest:Android系统上的视频管理
  2. CentOS/Linux 卸载MATLAB
  3. webpack那些事儿
  4. php mysql redis mq_docker 搭建 php-mysql-nginx-redis-rabbitmq环境
  5. 【EI会议】 2021年图像处理与智能控制国际学术会议(IPIC 2021)
  6. string 都不能作用于switch_谁带孩子争论不休?家庭教育谁也不能缺席,每个人的作用都不同...
  7. 思科修复运营商级路由器中的两个已遭利用漏洞
  8. 如何安装PANABIT?
  9. 数据流图转换为软件结构图
  10. uni-app中配置微博分享相关信息
  11. 2008'中国地理信息系统优秀工程公示
  12. 深度学习之 人脸识别(2) 模型
  13. 第七届蓝桥杯大赛个人赛--小明被绑架到X星球的巫师W那里
  14. 关于RFID电感耦合方式的射频前端工作原理,你了解吗?
  15. 首页技术支持常见问题宽带外网IP显示为10、100、172开头,没有公网IP,如何解决?...
  16. 门级仿真经验(SDF反标及其工作原理)
  17. 长处比短板更容易困住你,读《能力陷阱》有感
  18. 自动驾驶 Apollo 源码分析系列,感知篇(八):感知融合代码的基本流程
  19. 【FPGA教程案例96】控制案例1——基于FPGA的自适应PID控制器verilog实现
  20. 互联网大佬爱情故事~

热门文章

  1. -----------简单排序-------------
  2. 关于使用百度地图的总结
  3. Jira-Clone与发邮件的使用
  4. iOS LLDB console debug总结
  5. 为Windows 服务器网络搬家
  6. 一看就会的 GitHub 骚操作,让你看上去像一位开源大佬
  7. 前辈学习C语言的四种方法,实际上不管学什么语言,都行之有效!
  8. BAT老程序员分享:Linux C/C++ 开发程序员的黄金方向和学习路线!
  9. 企业要搞数字化转型,是用一整套ERP,还是各搞各的数据系统?
  10. 准备拉琴的zskame大白菜