0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是OpenDaylight的Maven

汽车电子技术 来源:码农与软件时代 作者:码农与软件时代 2023-02-14 15:02 次阅读

新项目开发的通常做法:项目经理从团队抽调1名开发人员进行项目工程框架的搭建,剩余的开发人员先研究项目需求,并着手准备业务逻辑的设计。本地项目工程搭建后,上传SVN或git配置库,告知其他开发人员可以下载项目工程,启动开发了。开发运维人员便进行代码的编写、编译、测试以及打包等系列操作。我们将这一系列的操作称为“构建”。

构建的实质是将我们编写的Java源文件、XML配置文件、HTML页面、CSS和JS文件等,通过某种方式组合在一起,变为可对外服务项目的过程。同时,构建过程中很多都是没有技术含量且重复的工作,手工操作很无趣且太麻烦。最好能够由手工模式转变为自动化模式,这样可以大大节省时间。

构建的工具主要有:

(1). Make;

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

(3). Maven;

(4). Gradle;

本文将介绍在SDN控制器OpenDaylight中使用的Maven工具。

一、Maven

Maven是Apache组织中一个开源项目,主要用于基于Java平台的项目构建、依赖管理和项目信息管理。下面来看下其几个核心概念:

1.坐标

坐标用于唯一标识构件(如jar,war等),坐标的元素包括groupId、artificatId、version、packaging、classifier,其中前3个是必须定义的,后2个是可选的。

①groupId:定义当前Maven项目隶属的实际项目。

②artificatId:定义实际项目中的一个Maven项目(模块),建议使用实际项目名称作为其前缀。

③version:定义Maven项目当前所处的版本。

④packaging:定义Maven项目的打包方式。

⑤classifier:帮助构建输出的一些附属构件。

2.生命周期

如前所述,软件人员每天的工作:项目的清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成等等,Maven对这些工作统一抽象为三个相互独立的生命周期:clean、default和Site。其中,default生命周期的目的是构建项目,而site生命周期的目的是建立项目站点。下面详细说明每种生命周期:

(1).clean生命周期的目的是清理项目,包含三个阶段:

①pre-clean执行一些清理前需要完成的工作;

②clean清理上一次构建生成的文件;

③post-clean执行一些清理后需要完成的工作。

(2).default生命周期的目的是构建项目,定义构建时所需要执行的所有步骤:

图片

其中重要阶段的解释如下:

图片

(3). pre-site的目的是建立项目站点,包含3个阶段:

①site生成项目站点文档;

②post-site执行一些在生成项目站点之后需要完成的工作;

③site-deploy将生成的项目站点发布到服务器上。

需要说明的是,从命令行执行maven任务实质上就是调用Maven的生命周期阶段。例如执行命令mvn clean install,则调用clean生命周期的clean阶段和default生命周期的install阶段,而实际上执行的阶段为clean生命周期的pre-clean、clean阶段,以及default生命周期的从validate至install的所有阶段。

3.插件

在Maven的生命周期中对软件人员的工作进行了抽象,相当于做一个模板,具体的实现则由插件来完成。下面列出default生命周期的内置插件绑定关系及具体任务:

图片

更加详细的内容可以参考Apache Maven官网:

http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html

4.仓库

Maven通过仓库来统一管理文件,同时,为了实现重用,项目构建后生成的构件也安装或部署到仓库中。Maven仓库的分为本地仓库和远程仓库,而远程仓库又包含中央仓库、私服和其他公共库。初始状态下,本地仓库是不存在的,当用户执行Maven命令后,则创建本地仓库,并根据实际需要,从远程仓库下载构件至本地仓库。

图片

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

D:/repository/

(2).远程仓库:相对本地仓库而言;

(3).中央仓库:是一个默认的远程仓库;包含了大部分的开源JAVA构件以及源码等信息。Maven的安装文件自带了中央仓库的配置。在Maven的安装目录下:$MAVEN_HOME\\lib\\maven-model-builder-3.3.9.jar

图片

图片

central为中央仓库的唯一标识。

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

5.Archetype

意为“原型”,可以理解为Maven项目的模板,以便用户可以快速创建项目,同时针对同类项目保持相同的项目结构及配置约定。Archetype是通过maven-archetype-plugin插件实现,官网链接:

http://maven.apache.org/archetype/maven-archetype-plugin/

三、Maven在OpenDaylight的使用

OpenDaylight使用Maven工具进行项目构建和依赖管理,并在构建简单的简易APP开发一文中对Maven的基础进行介绍,链接如下:

https://docs.opendaylight.org/en/latest/developer-guide/developing-apps-on-the-opendaylight-controller.html

1. 修改settings.xml

为了从远程仓库下载OpenDaylight版本的依赖包,首先需要修改maven的settings.xml,并指定远程仓库的地址。事实上,OpenDaylight提供了预先写好的settings.xml文件,其下载地址为:

https://github.com/opendaylight/odlparent/blob/stable/carbon/settings.xml

https://raw.githubusercontent.com/opendaylight/odlparent/master/settings.xml

具体内容解释如下:

图片

Maven安装以后,setting.xml文件存在两个地方:

①USR_HOME/.m2/settings.xml,表示当前用户范围的配置文件;

②MAVEN_HOME/conf/settings.xml,表示全局范围配置文件,修改后将影响本机所有的用户配置。

详细的setting文件说明参见链接:

https://maven.apache.org/settings.html。

2. 选择Archetype

Archetype是一个Maven项目模板工具包,使用Archetype来生成项目骨架,可以使得开发人员在开发新的应用程序时,使用与OpenDaylight风格一致的最佳实践方法。

OpenDaylight应用创建的Archetype可通过如下链接查询:

https://nexus.opendaylight.org/#nexus-search;gav~org.opendaylight.archetypes~~~~

图片

执行命令:

图片

通过交互构建hello示例应用,生成的文件视图大致为:

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • JAVA
    +关注

    关注

    19

    文章

    2917

    浏览量

    103369
  • XML
    XML
    +关注

    关注

    0

    文章

    184

    浏览量

    32964
  • HTML
    +关注

    关注

    0

    文章

    275

    浏览量

    30709
收藏 人收藏

    评论

    相关推荐

    Maven-02-Maven简介

    maven
    电子学习
    发布于 :2023年01月08日 17:11:25

    Maven-04-IDEA配置Maven

    maven
    电子学习
    发布于 :2023年01月08日 17:13:18

    Maven-01-Maven概述

    maven
    电子学习
    发布于 :2023年01月08日 17:15:37

    Maven 配置指南

    Maven 配置指南http://bbs.edu118.com/forum.php?mod=viewthread&tid=263&fromuid=231(出处: 信盈达IT技术社
    发表于 08-28 15:08

    在Linux平台下面安装Maven步骤说明

    Apache Maven,是一个软件(特别是Java软件)项目管理及自动构建工具,由Apache软件基金会所提供。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目
    发表于 07-23 06:14

    Linux下的Maven安装方法

    关键步骤如下: 1. 下载Maven包. 2. 解压Maven包. 3.配置Maven系统参数,验证Maven是否正确安装.
    发表于 07-23 08:01

    MyEclipse环境搭建Maven的开发环境

    一:Maven的下载安装 1、安装环境:win7 旗舰版 + MyEclipse2014 2、前置条件:JDK (本人用的jdk1.8) 3、maven下载: 说明:maven依赖于jdk,所以搭建
    发表于 11-28 16:13 1307次阅读

    干货:在Windows上安装Maven及配置

    干货:在Windows上安装Maven及配置
    的头像 发表于 06-20 09:24 2604次阅读
    干货:在Windows上安装<b class='flag-5'>Maven</b>及配置

    如何从零开始学OpenDaylight

    OpenDaylight的逻辑架构分为应用层、控制器层和数据转发层。其中,应用层聚焦网络业务逻辑开发,负责资源编排;控制器层进行全局网络的管理;数据转发层为各种网络设备,负责数据的转发。
    的头像 发表于 02-14 14:04 1553次阅读
    如何从零开始学<b class='flag-5'>OpenDaylight</b>

    OpenDaylight的运行环境

    OpenDaylight作为一种开源的SDN控制器,使用Java语言编写,
    的头像 发表于 02-14 14:08 620次阅读
    <b class='flag-5'>OpenDaylight</b>的运行环境

    OpenDaylight中的OSGi

    从写单个类的打印Hello World小程序到OSGi模块化开发,确实存在较大的难度,本文将从模块化、OSGI模型以及OSGI在OpenDaylight中的应用等方面进行介绍。
    的头像 发表于 02-14 15:05 601次阅读
    <b class='flag-5'>OpenDaylight</b>中的OSGi

    OpenDaylight中的DataStore是什么

    SDN起源于校园网,发扬光大于数据中心,现广泛用于广域网,SDN控制器,可能管理着数十万台软交换机,下发数百万乃至上千万条路由信息。因此,作为SDN控制器的开源项目OpenDaylight,无论是业务逻辑还是数据存储,
    的头像 发表于 02-14 15:13 1137次阅读
    <b class='flag-5'>OpenDaylight</b>中的DataStore是什么

    如何理解Maven拉包原理,搞定Maven构建项目

    依赖是我们在使用 Maven 构建项目时最常使用的功能,通过依赖标签,我们可以直接从Maven仓库中引入对应的Jar包,无需手动再将Jar添加到目录下了,可谓是十分方便,不过我们除了使用,还需要考虑多模块下依赖之间的关系。
    发表于 05-25 09:50 394次阅读
    如何理解<b class='flag-5'>Maven</b>拉包原理,搞定<b class='flag-5'>Maven</b>构建项目

    idea配置了maven但不显示pom

    配置 Maven 是一个开发者常见的任务,通过 Maven 可以更方便地管理项目依赖和构建过程。在配置 Maven 的过程中,我们可能会遇到一些问题,比如没有正确显示 pom 文件。本文将详细介绍
    的头像 发表于 12-06 14:17 1177次阅读

    idea如何添加maven

    Maven是一个开源的项目管理工具,它提供了一种简单的方式来管理项目的依赖关系、构建过程和发布部署。本文将详细介绍如何将Maven添加到你的项目中,并使用它来管理你的项目。 第一步:安装Maven
    的头像 发表于 12-06 14:56 728次阅读