`
巴赫的梦幻
  • 浏览: 74270 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

maven学习整理

阅读更多
之前在使用生产项目的过程中经常会遇到困惑:
1. mvn archetype:generate和mvn archetype:create之间有什么区别?
2. 类似archetype:generate的信息是什么?


第一个问题从网上搜了一下,原因是:mvn archetype:create在maven 3.0.5 之后将不再推荐使用;
第二个问题,我们需要首先从mvn的运行机制上说起:
Mvn 本身的构成分为几个部分:
周期->阶段->插件->目标
个人理解mvn的周期和阶段只是从顶层抽象了mvn在项目管理过程中的标准化流程,其实具体的执行还都是通过插件来实现的,并且在每个不同的插件中还包括了很多不同的目标(goal),每个goal回去实现一个具体的功能;例如我们在命令行中输入如下的信息:
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=myapp -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

mvn在后台会去对应到一个插件来执行项目生成的功能:





从这里可以看到mvn archetype:generate这样一行命令实际上是对应了
artifactoryId:maven-archetype-plugin
version: 2.4
goal: generate
这样一个插件

-D其实是java自带参数用于传递启动参数,maven直接重用,用于给插件传递参数;

mvn的生命周期与阶段:
mvn的很多阶段都会默认绑定非常多的目标,我们使用mvn最为直接的方式就是在命令行输入某个阶段;例如,当我们输入mvn clean install 的时候,我们表面上是输入了“clean周期中的clean阶段”和“default周期中的install阶段”;由于每个阶段有会绑定到不同的“插件-目标”,因此当我们执行mvn clean install的时候,实际上发生了非常多的事情:





这里需要特殊说明的是:
1. 虽然mvn的三个生命周期是相互独立的,但是每个生命周期内部的阶段是有顺序的。在default生命周期之中,install阶段之前还有很多其他阶段,例如process-resources,compile,test等等,并且部分阶段会有绑定的插件目标,因此我们可以看到在每个阶段多会执行很多的工作;
2. 另外,我们也可以通过在代码中通过配置指定目标执行的顺序;




例如,这段jacoco插件的配置,就是要求这个插件在default周期的process-classes阶段去执行插件的prepare-agent目标方法。(针对这段配置,我们可以直接在命令行里输入mvn process-classes进行验证)

distributeManagement的用法

当我们使用 mvn install 命令的时候其实是将jar包部署到本地环境。当我们使用 mvn deploy 会将jar包部署到远程仓库中。要实现这种功能我们只需要做如下几件事情:
1. 在本地的settings.xml文件中配置对用远程仓库的账号密码信息

  <servers>
	<server> 
		<id>XXX-Releases</id>
		<username>hello</username>
		<password>111</password> 
	</server>
  </servers>


2. 在对应代码的主pom文件中增加distributeManagemnet


      <repository> 
          <id>XXX-Releases</id> 
          <name>XXX-Releases Name</name> 
          <url>http://XXX-Releases.com</url> 
      </repository> 



第二步中的id要与第一步的id保持一致。
  • 大小: 10.9 KB
  • 大小: 52.2 KB
  • 大小: 21.3 KB
分享到:
评论

相关推荐

    maven学习资源整理

    ** Maven学习资源整理** 在Java开发领域,Maven是一个不可或缺的构建工具,它极大地简化了项目的构建、管理和依赖管理过程。本资源包是为初学者和有经验的开发者准备的一系列Maven学习资料,旨在帮助你更好地理解和...

    maven学习笔记整理

    maven学习笔记整理

    maven3学习资料整理

    以下是对 Maven3 学习资料的详细整理: **一、Maven 安装与配置** 1. **安装**:首先,你需要从官方网站下载 Maven 的最新版本,然后解压到指定的目录。 2. **环境变量配置**:设置 `JAVA_HOME` 和 `MAVEN_HOME` ...

    maven学习笔记1

    【Maven学习笔记1】 Maven是一个强大的Java项目管理和构建工具,它可以帮助开发者管理项目的依赖、构建过程、项目信息和报告。本笔记主要涵盖了Maven的基础知识,包括资料收集、安装指南,特别是针对Linux环境下的...

    Maven心得,简单介绍maven。

    不仅如此,Maven 还是一个项目信息管理工具,它可以收集并整理项目描述、开发者信息、版本控制、许可证等,生成项目站点,提供文档、测试报告、静态代码分析等信息,方便团队协作和项目维护。此外,通过 Nexus 等...

    超详细Maven快速入门到精通.txt打包整理.zip

    标题"超详细Maven快速入门到精通.txt打包整理.zip"表明这是一个关于Maven的全面教程,涵盖了从基础到高级的各个方面,旨在帮助用户快速掌握Maven的使用。Maven是一个Java项目管理和综合工具,由Apache软件基金会开发...

    maven完全手册

    这份“maven完全手册”是个人精心整理的中文文档,旨在帮助开发者全面理解并掌握Maven的使用。 **1. Maven简介** Maven是由Apache软件基金会开发的一个项目管理和综合工具。它基于项目对象模型(Project Object ...

    maven讲解实战

    **Maven实战详解** 在Java开发领域,Maven是一个不可或缺的构建工具,它极大地简化了项目的构建、管理和依赖管理过程。Maven通过一个统一的项目对象...学习并熟练掌握Maven,对于提升Java开发者的专业技能至关重要。

    maven详解.emmx

    将maven知识整理为详细的思维导图,均为学习过程中的知识整理,方便记忆和复习,内容非常详尽,建议收藏,也可以根据该导图学习maven相关知识

    超详细Maven快速入门到精通[视频课程].txt打包整理.zip

    本教程通过"超详细Maven快速入门到精通[视频课程].txt打包整理.zip",旨在帮助初学者快速掌握Maven的基本用法并逐步进阶到精通。 1. Maven基础: Maven基于项目对象模型(Project Object Model,POM),它定义了...

    jk1107 Maven Webapp.zip

    【标题】"jk1107 Maven Webapp.zip" 是一个包含蒋老师个人整理的聊天室和杰信商贸项目的Maven Web应用程序的压缩文件。这个压缩包的核心是使用Maven,一个强大的Java项目管理和集成工具,来构建Web应用程序。Maven...

    Maven 简易安装到项目搭建教程

    在工作过程中,由于接触的项目多了,就想自己先搭一个私服练一下,顺便把整个过程稍微记录一下,然后整理成文档,共享给大家,把用到的全部打包,希望可以对初学MAVEN的有所帮助,不足的地方请大家指出,共通学习进步

    Docker+Jenkins+GitLab+Maven+SpringBoot&SpringCloud实现自动化构建镜像与部署详解

    初衷想法:在学习过程中遇到比较有趣的问题、然而花了点心血和时间去整理,然而进行梳理出来一份文章比较完整有知识体系的DevOps自动化构建与部署工程文章,技术知识内容比较多,而且文章内容较长,然而分了几个章程...

    Head first java 设计模式源码 我将其整理成maven工程导入即可使用

    本项目基于《Head First Java》一书中的设计模式,将源码整理成了Maven工程,使得学习和实践这些模式变得更加便捷。对于开发者而言,了解和掌握这些模式能提升代码质量,提高代码可读性和可维护性。 1. Maven工程的...

    jfinal3.2+maven+idea

    4. **项目信息管理**:Maven帮助整理项目信息,如项目描述、作者、许可证等,便于团队协作和发布。 **IntelliJ IDEA** 是JetBrains公司开发的一款强大的Java集成开发环境,提供了许多提高开发效率的功能: 1. **...

    maven快速入门

    结合慕客网上视频的学习对maven知识点进行整理汇总。感觉很有用分享给大家

    Java开发之普通web项目转为Maven项目的方法

    在Java开发中,Maven是一个强大的项目管理工具,它基于项目对象模型(Project Object Model,POM),能够帮助开发者管理构建、报告以及...希望这个详细的转换指南能对你在学习和工作中有所帮助,不断进步,共同提升。

    尚硅谷2018新年学习大礼包重新整理版 资源下载

    【标题】:“尚硅谷2018新年学习大礼包重新整理版 资源下载”这一标题揭示了这是一个关于IT学习资源的集合,特别强调了是2018年新年时推出的,并且经过了重新整理,意味着内容可能更加精炼且符合当时的技术趋势。...

    《springcloud&学习资料》--基于springboot+springcloud+maven的在线考试系统.zip

    个人花大量时间整理出的实战资料,内容丰富,文档也很详细。无论做毕业设计还是用于学习技能,或工作中当做参考资料,都能发挥重要作用 亲们下载我任何一个付费资源后,即可私信联系我免费下载其他相关资源哦~ 个人...

Global site tag (gtag.js) - Google Analytics