欢迎光临
我们一直在努力

从零开始学OpenDaylight之四:Maven工具

 一、写在前面

小公司启动开发新项目的做法:项目经理从团队抽调1名开发人员进行项目工程框架的搭建,剩余的开发人员先研究项目需求,并着手准备业务逻辑的设计。本地项目工程搭建后,上传SVN或git配置库,告知其他开发人员可以下载项目工程,启动开发了。开发人员将项目工程导入到IDE(Eclipse)中,进行代码的编写、编译、测试以及打包等操作,本地代码确认无误后,上传配置库。

       从公司的现实考量,做好一个项目的时间越短,带来的市场空间和效益就有优势。这就要求除业务逻辑翻译的代码必须人工来做外(这里也有部分代码生成工具参与),没有技术含量并且重复的工作能自动化最好就自动化。从启动开发新项目的过程可以看出,诸如编译、单元测试、打包和部署等称为“Build-构建”的工作,最好能做到全自动流水线一样,只需要一条简单的命令就可以自动完成,这样可以大大节省时间。

       于是,需要有人使用软件的方法来让这一系列动作自动化。早期的构建管理的解决方法有:

        (1). Make; 

        (2). Ant(Another Neat Tool):另一个整洁的工具;

       目前,使用较多的是maven、Gradle,本文重点介绍Maven。

二、Maven基础

1. 什么是Maven?

    译为“专家”,Maven是一个跨平台的项目管理工具,它可以帮助开发者完成以下工作: 构建、依赖、发布 、分发 以及测试报告等等; 

    从零开始学OpenDaylight之四:Maven工具

2. Maven核心概念     

    坐标、 依赖、 仓库、 生命周期和插件; 

   (1). 坐标:

    类比卫星通信进行定位一样,Maven中标识一个文件,使用

      groupId: com.mycompany

      artifactId:  hello

      version  3.0-SNAPSHOT

   (2). 仓库:

       Maven通过仓库来统一管理文件,同时,为了实现重用,项目构建后生成的构件也安装或部署到仓库中。涉及如下几个概念:

从零开始学OpenDaylight之四:Maven工具

       A. 本地仓库:一般来说,在Maven项目目录下,没有诸如lib这样用来存放依赖文件的目录。当Maven在执行编译或测试时,如果需要依赖文件,它总是基于坐标使用本地仓库的依赖文件。通过setting.xml文件标识:           

<localRepository>D:/repository/</localRepository>

 

      B. 远程仓库:将本地仓库类比为书房,远程仓库可理解为书店;

      C. 中央仓库:是一个默认的远程仓库;包含了大部分的开源JAVA构件以及源码等信息。

      D. 私服:是一种特殊的远程仓库,架设在公司内部。当下载构件时,从私服下载,如果私服不存在,则私服请求提供服务。          

   opendaylight私服: https://nexus.opendaylight.org/#nexus-search;quick~opendaylight-startup-archetype

    从零开始学OpenDaylight之四:Maven工具

  (3). 生命周期:

        开发人员每天的工作就是对项目进行清理、编译、测试及部署。不同的公司以及同一公司内部不同项目间,使用的构建方式可能并不相同,有的是手工,有的自动化,有的半手工半自动化,即使全是自动化,使用的脚本也不相同,不具有普适性。Maven的生命周期就是为了对所有的构建过程进行抽象和统一,它包含项目的清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成等几乎所有构建步骤。

    从零开始学OpenDaylight之四:Maven工具

    mvn clean: 执行clean生命周期pre-clean和clean阶段;

    mvn clean install: 执行clean生命周期pre-clean和clean阶段,default生命周期的validate~install 所有阶段;  

    说明:

mvn clean install -Dmaven.test.skip=true; 中的-D使用了JAVA表示方式,-D set a system property(设置系统属性) 

 

 (4). 插件:

       插件完成具体的任务,与Maven的生命周期相互绑定。

       maven-surefire-plugin: 测试插件

       如何跳过?

       A. -DskipTest

       B.-Dmaven.test.skip=true

       测试失败后,不退出:-Dmaven.test.failure.ignore=true

三、Archetype

      主要目的是:快速创建项目,并遵循一致的项目结构和配置约定。

      官方地址:http://maven.apache.org/archetype/maven-archetype-plugin/index.html

      OpenDaylight相关的项目,使用的是opendaylight-startup-archetype

mvn archetype:generate -DarchetypeGroupId=org.opendaylight.controller -DarchetypeArtifactId=opendaylight-startup-archetype -DarchetypeVersion=1.3.0-Carbon

 说明:本文部分信息来自互联网资料整理

  • 海报
海报图正在生成中...
赞(0) 打赏
声明:
1、本博客不从事任何主机及服务器租赁业务,不参与任何交易,也绝非中介。博客内容仅记录博主个人感兴趣的服务器测评结果及一些服务器相关的优惠活动,信息均摘自网络或来自服务商主动提供;所以对本博客提及的内容不作直接、间接、法定、约定的保证,博客内容也不具备任何参考价值及引导作用,访问者需自行甄别。
2、访问本博客请务必遵守有关互联网的相关法律、规定与规则;不能利用本博客所提及的内容从事任何违法、违规操作;否则造成的一切后果由访问者自行承担。
3、未成年人及不能独立承担法律责任的个人及群体请勿访问本博客。
4、一旦您访问本博客,即表示您已经知晓并接受了以上声明通告。
文章名称:《从零开始学OpenDaylight之四:Maven工具》
文章链接:https://www.456zj.com/38195.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址