`

纯干货!华为软件开发云编译构建之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 3.6.3文件 setting文件已替换华为云maven镜像

    Maven是Java开发中的一款项目管理和综合工具,它简化了构建过程,通过提供一个标准化的构建系统,使得项目依赖管理变得更加简单。Maven 3.6.3是Maven的一个稳定版本,它带来了许多改进和修复,提升了构建效率和用户...

    maven的华为云镜像的setting.xml文件

    maven的华为云镜像的setting.xml文件

    2021华为软件精英挑战赛智能世界凌云比赛java实现参考

    这是一场聚焦于软件开发和智能技术的竞赛,由华为主办,旨在推动技术创新和人才培养。参赛者可能需要运用Java的核心特性和高级框架来设计和实现智能解决方案。 【标签】"华为" 指的是这场比赛与华为公司有关,可能...

    华为云 OBS esdk-obs-java

    华为云 后端 OBS 上传图片,文件 sdk maven 引入 <groupId>com.huaweicloud</groupId> <artifactId>esdk-obs-java <version>3.21.11 </dependency>

    Maven从入门到精通的吐血之作.pdf

    同时,为了提高依赖的下载速度,还可能会介绍如何配置Maven镜像,通常会指向使用快速的第三方镜像服务,如阿里云、华为云等提供的镜像。 2.2.5 Eclipse 考虑到Eclipse是Java开发者广泛使用的IDE工具,文档会专门...

    华为云服务器部署springboot项目,并进行压力测试

    在本项目中,我们将探讨如何在华为云服务器上部署一个基于Spring Boot的电商应用,并对其进行压力测试。这个项目利用了Spring Boot的灵活性和高效性,同时整合了Redis和RabbitMQ来处理高并发访问场景。 首先,让...

    鲲鹏云上应用高可用部署实验报告.docx

    【鲲鹏云上应用高可用部署实验报告】 本实验旨在展示如何在华为鲲鹏云平台...通过合理的资源分配、数据库迁移和应用配置,可以在华为鲲鹏云上构建出一个稳定、高效的OA系统,满足企业对业务连续性和数据安全性的需求。

    华为smproxy包开发短信

    这可以通过将jar文件放入项目的lib目录或者在构建工具如Maven或Gradle的依赖配置中指定。 要检查MAS机的状态,你需要使用SMProxy提供的相关API。这些API可能包括连接到MAS服务器、验证身份、获取设备状态等。通常,...

    华为云服务:serviceComb框架的使用

    ServiceComb是华为云推出的一款开源的微服务框架,旨在简化微服务开发和管理的过程,帮助企业快速构建云原生应用。本教程将通过一个入门案例,深入探讨ServiceComb的核心功能和使用方法。 1. **微服务概念** ...

    华为HCIP CloudServiceDeveloper V1.0 DevOps工程师官方认证教材

    3. 编译构建工具:如Maven,辅助Java项目构建。 4. 自动化测试:如JUnit,进行单元测试;Selenium,用于Web应用的功能测试。 5. 配置管理:如Ansible,实现基础设施配置的自动化。 6. 监控与日志:如ELK(Elastic...

    maven安装与配置.docx

    - **镜像源选择**:除了阿里云镜像外,还可以选择其他的镜像源,如腾讯云、华为云等,具体根据个人需求和网络状况选择。 - **文档查阅**:如果在配置过程中遇到问题,建议查阅Maven的官方文档或参考相关的技术社区和...

    maven下载安装与配置.docx

    你可以通过Maven的命令行工具来执行各种构建任务,如编译、测试、打包等。 - **创建pom.xml文件**:在实际开发中,你需要在项目的根目录下创建一个`pom.xml`文件,该文件是Maven项目的核心配置文件,用于定义项目的...

    springboot集成华为人脸识别案例.rar

    这通常通过Maven或Gradle等构建工具来完成,添加对应的依赖库。确保SDK版本与华为云服务兼容。 2. **申请API密钥**:在华为云平台上注册账号,并创建服务实例,获取API密钥(AK和SK)。这些密钥用于鉴权,确保请求...

    Felix华为Felix开发和运行包。

    【标题】:“Felix华为Felix开发和运行包”揭示了这个压缩包是针对华为公司的一款名为Felix的开发和运行环境。Felix是Apache软件基金会下的一个项目,它是一个基于OSGi(Open Service Gateway Initiative)规范的...

    settings.xml

    3、华为maven仓库 4、maven官方运维的2号仓库 5、 maven在UK架设的仓库 6、JBoss的仓库 7、中央仓库在中国的镜像 8、spring的libs-release镜像,存放spring项目及其子项目的jar包,以及相关的依赖jar 9、spring的...

    maven下载安装与配置.pdf

    常用的国内镜像源包括阿里云、华为云等。 #### 四、在IDE中配置Maven(以IntelliJ IDEA为例) 1. **打开IDEA设置**:在IntelliJ IDEA中,点击“File”菜单,选择“Settings”(Windows)或“IntelliJ IDEA”>...

    华为MapReduce服务应用开发指南.pdf

    华为MapReduce服务应用开发指南是一份详细的技术文档,指导开发者如何在华为提供的MapReduce服务(MRS)上进行应用开发。文档详细说明了如何准备开发环境,包括如何通过开源镜像站点获取样例工程,如何处理开源jar包...

    华为云鲲鹏服务器部署文档-中电高科V5.12.pdf

    华为云鲲鹏服务器部署java微服务的基础软件环境,所有操作均实测通过。包括CentOS 7.6 64bit ARM版基础操作,JDK设置,maven,camke,gcc,node.js,zookeeper,redis,mysql 8.0.17,nginx,golang等等的安装与设置...

    华为HMS Drive Kit 华为云空间服务

    这个服务是华为移动服务(HMS)生态的一部分,旨在帮助开发者构建更高效、安全的应用,并且减少构建自定义云存储解决方案所需的成本和复杂性。 集成HMS Drive Kit的首要条件是开发者需要拥有一个华为开发者帐号,并...

    华为java培训笔记

    对于工具部分,可能会涉及到Eclipse、IntelliJ IDEA等主流Java集成开发环境(IDE)的使用,以及Maven、Gradle等构建工具的配置和应用。这些工具能极大地提高开发效率,简化项目管理。 源码分析是提升编程能力的重要...

Global site tag (gtag.js) - Google Analytics