纯干货!华为软件开发云编译构建之Maven
一.Maven介绍
Maven是一个项目管理和整合的工具。Maven为开发者提供了一套完整的构建生命周期框架。开发团队基本不用花多少时间就能自动完成工程的基础构建配置,因为Maven使用了一个标准的目录结构和一个默认的构建生命周期。
二.Maven用途
Maven提供了帮助管理
构建、文档、报告、依赖、SCMs、发布、分发的方法。可以方便的编译代码、进行依赖管理、管理二进制库等等。Maven的好处在于可以将项目过程规范化、自动化、高效化以及强大的可扩展性利用Maven自身及其插件还可以获得代码检查报告、单元测试覆盖率、实现持续集成等等。
三.Maven配置
1. 新建构建任务
首先在华为软件开发云中新建构建任务(见图1)。
图1 新建构建任务
【maven-demo】是用户自定义的构建任务名称。
【maven_demo】是已经创建的代码仓库,【master】是【maven_demo】中的一个分支。
关于归档,需要注意两点:
1)
归档的路径,默认是【target/*.jar】,实际路径取决于pom文件的路径,我们先看【maven_demo】的工程目录(见图2),pom文件在【springmvc_demo】文件夹内,所以实际归档的路径应该是【springmvc_demo/target/*.jar】。
图2 maven_demo仓库目录结构
2) 归档类型,默认是jar,实际类型取决于pom文件中的设定(见图3),pom文件中,打包类型是war,所以实际类型是war。
图3 springmvc_demo工程pom文件
所以,归档中,应该写入【springmvc_demo/target/*.war】。
最后,成功创建构建任务。
2. 编辑构建任务
1) 基本信息
创建任务时的配置是最基本的配置,用户可以通过编辑任务配置更详细的参数(见图4)。
图4 构建任务编辑步骤
在【基本信息】中,可以设定【执行参数配置】,也就是在执行构建的时候,进行参数配置。这些参数主要用于设置【包名】、【版本号】、【分组】和【打包类型】,在【配置构建】中会使用这些参数(见图5)。
图5 执行参数配置
【字符类型】就是字符串,【自定义类型】类似于枚举,从定义好的值中选择一个(见图6,图7)。
图6自定义类型参数编辑
图7 自定义类型参数值
2) 代码配置
选择要构建的代码仓库和分支(见图8)。
图8 选择一个代码仓库
如果选择【自动构建】,则只要仓库代码有变动,就会触发编译构建。
根据项目需要,如果要构建多个仓库,为了避免代码冲突,需要指定存储目录(见图9)。
图9 选择多个代码仓库
该存储目录由用户自定义设置,在服务器中对应的路径与仓库的目录结构有关。
【maven_demo】的构建路径如下图:
图10 maven_deno仓库的工作目录
【maven_demo2】的构建路径如下图:
图11 maven_deno2仓库的工作目录
注意:仓库【maven_demo2】的目录结构与仓库【maven_demo】的不同,前者的pom文件在仓库的根目录下,后者的pom文件在根目录下的【springmvc_demo】目录中。
3) 构建配置
构建环境选择【Java】,构建类型选择【Maven】。Maven的配置参数很多(见图12)。
图12 maven参数配置
【Maven版本】:目前只支持mvn3.3.1,之后会根据maven的版本升级而更新可选择的版本号。
【发布到私有库】:默认不选是执行maven
package,打包到本项目,一般是在项目target目录下。如果勾选,则执行maven
deploy,打包上传到远程仓库,将软件包发布至用户私有maven release和maven snapshot仓库,需要配置pom文件。
【Maven参数】:默认是-U,在编译的时候会下载snapshot仓库的最新依赖包。如果有需要可以配置其他的参数(见图13)。
图13 maven常用参数命令
【POM文件】:如果pom文件在仓库的根目录下,则不用填写,如果像仓库【maven_demo】,pom文件不在根目录下,需要指定pom文件的路径【springmvc_demo/pom.xml】,如果在【代码配置】中,指定了【存储目录】为test1,则需要要加上存储目录,即【test1/springmvc_demo/pom.xml】。
【属性】:即构建脚本需要的属性。用命令行使用Maven的插件时,-D表示属性的输入。例如maven的版本管理,增加属性如下(见图14):
#Maven 版本管理
branchName=xxxx-100317 #分支中的名称
updateBranchVersions=false #是否更新分支的版本信息,默认为false
updateWorkingCopyVersions=false #是否更新主干的版本信息,默认为true
每个属性中不能有空格,属性之间用空格分开。
图14 maven属性配置
具体如何查找属性请参考下面链接:
http://www.cnblogs.com/EasonJim/p/6865150.html
【JVM选项】: 在基于Maven管理的Java项目中,经常出现内存溢出的错误,这种情况下,需要进行JVM的参数设置更新,一般而言,都是根据内存溢出问题的不同,针对内存、permspace来进行调整和设置。比如增大PermGen区空间为128M,设置方法为
set
MAVEN_OPTS=-XX:MaxPermSize=128M,实际填写【JVM选项】时,只写入【-XX:MaxPermSize=128M】(见图15),如果需要设置多个属性,属性之间用空格分隔。
图15 maven JVM选项配置
JVM的具体参数请参考下面的链接:
http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html
【编译构建后】选择【发布到编译构建仓库】(见图16)
图16 编译构建后参数配置
这里,会定义【包名】、【版本号】、【文件路径】、【分组】和【打包类型】,这里可以写入固定的值,也可以使用在【基本信息】中定义的参数,这里使用的就是【基本信息】中定义的参数。方法是${参数名}。关于【文件路径】,如果pom文件在仓库的根目录下,并且没有指定【存储目录】,则【文件路径】为【target/springmvc_demo.war】,如果指定了【存储目录】为test1,那么在【文件路径】最前面应该加上存储目录,例如【test1/springmvc_demo/target/springmvc_demo.war】。
如果同时构建多个仓库,则需要再增加【执行Maven】和【发布到编译构建仓库】步骤(见图17)。
图17 多仓库编译构建后参数配置
4) 构建执行配置
【构建结果】选择【归档】,【用于归档的文件】默认就是全部包(见图18)。具体路径也是取决于pom文件的路径,参考【构建配置】中的【文件路径】。
图18 构建结果配置
包的类型取决于pom文件中的定义。【不包含】是指不需要归档的包,如果有多个,每个包之间用空格分隔。
如果选择多个代码仓库,则需要增加【归档】(见图19)。
图19 多仓库构建结果配置
5) 构建计划配置
【构建计划】有【不定时】、【每日】和【每周】。
【不定时】是指用户手动构建,用户不操作,就不会构建。
【每日】是指每天定时构建,不需要用户操作(见图20)。
图20 每日构建计划配置
【每周】是指每周可以固定哪几天定时构建,如周二,周四(见图21),也不需要用户操作。
图21 每周构建计划配置
【构建时长限制】是指一次构建最长时间限制,如果超过该时长还没有构建完毕,则停止构建。
四.Maven构建
用户执行【开始构建】,会弹出参数窗口(见图22)。
图22 执行构建配置
根据项目实际需求,填写参数,这些参数是在【基本信息】中定义好的,然后开始【执行】,最后构建成功(见图23)。
图23 构建成功
五.小结
maven不仅是构建工具,它还是依赖管理工具和项目管理工具,提供了中央仓库,能够帮我们自动下载构件。为了解决依赖的增多,版本不一致,版本冲突,依赖臃肿等问题,它通过一个坐标系统来精确地定位每一个构件。maven还为全世界的Java开发者提供了一个免费的中央仓库,在其中几乎可以找到任何的流行开源软件。通过衍生工具(nexus),我们还能对其进行快速搜索。总之,maven构建会给你带来很多的好处和惊喜。
纯干货!华为软件开发云编译构建之Maven的更多相关文章
- 如何使用华为软件开发云快速部署PHP网站
华为软件开发云这个工具,从去年推出我就一直在关注,毕竟是华为最新的一款软件开发工具,最近我一直在使用华为软件开发云进行开发项目管理,它有在线编译和构建.云端在线代码检查等功能,编译省去了很多物理机器的 ...
- 华为软件开发云对比Jenkins-JavaWeb项目持续部署方式
一.前言:Jenkins介绍 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成和持续部署变成可能. 本文 ...
- 看完给跪了:技术大牛总结的Github与华为软件开发云完整对比
华为软件开发云配置管理 服务和Github是国内外比较有代表性的代码托管平台,它们以git作为版本管理工具,使项目中身处各地的人员可以协同工作,主要操作涉及仓库.分支.提交.pull request等 ...
- 一个项目经理对主流项目管理工具的对比:禅道VS华为软件开发云
禅道与软件开发云对比分析报告 1. 产品介绍 禅道是易软天创出品的一款项目管理软件,集产品管理.项目管理.测试管理.文档管理.组织管理于一体,覆盖了项目管理和测试管理的核心流程. 华为软件开发云 (D ...
- 哪个项目管理工具好用到哭?JIRA VS 华为软件开发云
一.产品介绍 JIRA是Atlassian公司出品的项目与事务跟踪工具,被广泛应用于缺陷跟踪.客户服务.需求收集.流程审批.任务跟踪.项目跟踪和敏捷管理等工作领域. 华为软件开发云 (DevCloud ...
- 华为软件开发云(DevCloud):免费可商用的项目管理工具
在软件开发技术和理念层出不穷的今天,如何更快的适应变化的环境,更好的满足客户的需求,已经成为决定从小到大各种规模企业能否活下去的关键. 天下武功唯快不破,在当今大环境中更是如此,微服务,敏捷开发,新的 ...
- 华为软件开发云CloudIDE功能简测
华为软件开发云CloudIDE是面向软件开发者的云端开发环境,支持在线编写代码,智能提示,代码提交,代码片段智能搜索等功能. CloudIDE实现了大部分IDE的功能,同时克服了全能IDE的缺点. 一 ...
- Eclipse安装Git插件以及通过Git导入华为软件开发云项目
--内容提交-- 1. Eclipse安装Git插件 2. 在Eclipse中导入华为软件开发云项目, 以及常用Git操作 一. Eclipse安装Git插件 现在从eclipse官网下载 ...
- GitHub转华为软件开发云详细教程
一.复制GitHub的代码库地址 首先,打开Github网页,找到要迁移的代码仓库地址,如下: 点击Clone or Download,出现以下界面 点击Copy toclipboard(复制到粘贴板 ...
随机推荐
- Example007关闭窗口时关闭父窗口
<!--实例007关闭窗口时刷新父窗口--> <!DOCTYPE html> <html lang="en"> <head> < ...
- React文档翻译 (快速入门)
翻译自react的大部分文档,方便自己查阅. 目录 生命周期 实例化 存在期 销毁期 state Do Not Modify State Directly State Updates May Be A ...
- spring auto-config
spring security auto-config auto-config配置 <http auto-config="true"> </http> 自动 ...
- ifame高度自动适应子页面内容
被这个问题折磨了好久,试了很多方法都不行,总算解决了,记录一下. <div class="iframe-pro" id="iframe-proid"> ...
- js加强版图片轮播
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Vulkan Tutorial 26 view and sampler
操作系统:Windows8.1 显卡:Nivida GTX965M 开发工具:Visual Studio 2017 在本章节我们将为图形管线创建另外两个资源来对图像进行采样.第一个资源我们之前已经接触 ...
- JavaWeb 后端 <八> 之 JDBC基礎(全)
一.JDBC简介 1.JDBC是SUN公司为了简化操作数据推出一套规范.数据库厂商的驱动就是对JDBC的实现. 2.Java Data Base Connectivity(java数据库连接),它主要 ...
- QQ空间魔力日志大全SduSRZ
大家好~最近,在QQ空间里出现了一种神奇的日志,谁看显示谁的信息,在个人中心显示的是一张图片,在日志里显示的又是另一张图片.这就是传说中的魔力日志.魔力日志从今年的9月份开始盛行,因为具有谁看就针对谁 ...
- 单片机C语言基础编程源码六则2
1.某单片机系统的P2口接一数模转换器DAC0832输出模拟量,现在要求从DAC0832输出连续的三角波,实现的方法是从P2口连续输出按照三角波变化的数值,从0开始逐渐增大,到某一最大值后逐渐减小,直 ...
- thinkphp分页带数据
因为用thinkphp做分页时候点击下一页后搜索栏的数据会清空,然后点击下一页后刷新完了就没有内容了,感觉网上查找和我自己研究在不适用ajax做分页的情况下用以下代码就可以实现!!通过把值扔地址栏来进 ...