JAVA开发常用Maven软件管理工具【奔跑吧!JAVA】

举报
Jack20 发表于 2021/05/28 10:58:59 2021/05/28
【摘要】 JAR文件制作方式1、JAVA开发的应用在发布前通常会打包一个JAR文件,JAR( Java ARchive )是将一系列文件(包含库、依赖文件等)合并到单个压缩文件里2、手动制作:早期使用jar命令制作JAR文件,所有的编译、测试、代码生成、打包等工作需要手动重复执行,效率较低,出错的机率较高3、自动生成:借助Maven等工具,自动进行软件包生命周期的管理,从而提高工作效率,降低出错的机率...

JAR文件制作方式

1、JAVA开发的应用在发布前通常会打包一个JAR文件,JAR( Java ARchive )是将一系列文件(包含库、依赖文件等)合并到单个压缩文件里

2、手动制作:早期使用jar命令制作JAR文件,所有的编译、测试、代码生成、打包等工作需要手动重复执行,效率较低,出错的机率较高

3、自动生成:借助Maven等工具,自动进行软件包生命周期的管理,从而提高工作效率,降低出错的机率

注:

程序开发的过程当中,构建工程,编写代码,测试代码,打包,部署,上线等每天都是重复工作。在传统过当中需要手工的去操作,那么效率是低效的。

自动化构建工具Maven一键全自动完成构建工程,编写代码,测试代码,打包,部署,上线等工作,那么效率是高效的。


Maven介绍

MavenApache下的一个纯Java开发的开源项目,基于项目对象模型(缩写:POM),可以对Java项目进行构建,依赖管理。

Maven官网链接: http://Maven.apache.org/

Maven下载链接: http://Maven.apache.org/download.cgi

Maven安装指导: http://Maven.apache.org/install.html

1、当下Java开发工具圈中,目前最主流的有以下三个开发工具,Lvy依赖Maven 依赖gradle依赖,依赖管理已经成为了项目构建自动化工具中的一个主要部分

2、构建在编程中是指什么?编程过程当中很多事情是与编程无关的项目管理工作,如下载依赖,编译源码,单元测试,项目部署等。一般的,小型项目我们可以手动实现这些操作,然而大型项目去实现则相对复杂。构建工具是帮助我们实现一系列项目管理、测试和部署操作的工具

3、对于Java项目的构建工具;传统构建工具有Ant,主流构建工具:Maven,新兴构建工具:Gradle

4、Maven构建项目的生命周期有哪些?

validate:验证项目以及相关信息是否正确

compile:编译源代码和相关资源文件

test:对测试代码进行测试

package:根据不同的项目类型进行打包:

verigy:验证打包的正确性

install:将打包好的包安装到本地

deploy:将打包好的包发布到远程


POM文件简介

Pom ( project object model )是Maven 工程的基本工作单元,是一个XML文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖等。以下为pom文件的部分内容:

version:项目的版本号,如果项目仍然处在开发阶段,通常在版本中带有-SNAPSHOT

modelverion:模型版本,目前是4.0.0

groupld:组织id,一般是一个公司域名的倒写

artifactld:项目名称,自定义生成

注:

groupld、artifactld和version组成了坐标,是一个项目的唯一标识,坐标除了标识项目外,另外也可以对应用使用的依赖进行标识


Maven仓库简介

1、本地仓库

存储在本地磁盘默认在S{user.home/.m2下,修改本地仓库位置需要修改Maven安装目录下conf/settings.xml文件的local_repository参数

Maven参考搜索顺序:

  • 本地仓库找到,直接返回。
  • 本地仓库没有找到,去远程仓库搜索


2、远程仓库

一般使用国内镜像或者公司自己搭建私服,可以加快jar包下载速度。指定远程仓库需要修改settings.xml文件中的servers参数

Maven参考搜索顺序:

  • 没有配置远程仓库,去中央仓库搜索。
  • 远程仓库找到,下载到本地仓库
  • 远程仓库没有找到,搜索下一个远程仓库,依次类推,如果所有远程仓都未找到,搜索中央仓。

配置优先搜索鲲鹏Maven仓库

在鲲鹏应用开发时,建议将远程仓库配置为优先搜索鲲鹏Maven仓库

  • 修改settings.xml文件
  • 在profiles便签下增加鲲鹏Maven仓库的信息,包括id、url
  • 将鲲鹏Maven仓库的信息放在第一位,使其可以被优先使用
<profile>
    <id>kunpeng</id>
    <!-- 远程仓库列表,将华为鲲鹏 Maven 仓库放在最前面 -->
    <repositories>
        <repository>
            <id>kunpengmaven</id>
            <name>kunpeng maven</name>
            <url>https://repo.huaweicloud.com/kunpeng/maven/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
        <!-- 其他 repository,配置其他Maven中央仓库,以华为云Maven为例 -->
        <repository>
            <id>huaweicloud</id>
            <name>huaweicloud maven</name>
            <url>https://repo.huaweicloud.com/repository/maven/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
        </repository>
    </repositories>
</profile>
<!-- 激活上面的profile -->
<activeProfiles>
  <activeProfile>kunpeng</activeProfile>
</activeProfiles>


3、中央仓库

Maven团队维护的jar包仓库https://repo1.Maven.org/Maven2/

Maven参考搜索顺序:

中央仓库找到,下载到本地仓库。

中央仓库没有找到,前台打印错误信息。


Maven生命周期

Maven为了对所有的构建过程抽象和统一,形成了一套高度完善的和易于扩展的生命周期

Maven拥有3套生命周期

1、clean:清理

  • pre-clean 执行一些需要在clean之前完成的工作
  • clean移除所有上一次构建生成的文件
  • post-clean执行一些需要在clean之后立刻完成的工作

2、default:编译、测试、打包、发布等

  • default生命周期是真正构建时所需要执行的所有步骤

3、site:站点生成

  • site生命周期目的是见建立和发布项目站点


Maven应用打包流程

 开发后的应用可以使用Maven,通过POM文件的方式进行打包,并且,打包后的程序可以安装到本地仓库中,供其它程序调用

注:JAR ( Java ARchive)是将一系列文件合并到单个压缩文件里,就象Zip那样。然而,同Java中其他任何东西一样,JAR文件是跨平台的,所以不必关心涉及具体平台的问题。

【奔跑吧!JAVA】有奖征文火热进行中:https://bbs.huaweicloud.com/blogs/265241

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。