maven
文章
01 maven概述
1 概述 参考文档 http://heavy_code_industry.gitee.io/code_heavy_industry/pro002-maven/chapter10/verse02.html 应用场景在项目开发中用到的三大仓库说明 git仓库:源码的版本管理和仓库。代码管理。 maven仓库:源码中第三方包的管理和版本控制。依赖管理。 docker仓库:基础镜像仓库的管理。镜像管理。 nexus私服企业可以创建内部的公用仓库 nexus是一个强大的maven仓库管理器,它极大的简化了本地内部仓库的维护和外部仓库的访问. nexus是一套开箱即用的系统不需要数据库,它使用文件系统加Lucene来组织数据 nexus使用ExtJS来开发界面,利用Restlet来提供完整的REST APIs,通过IDEA和Eclipse集成使用 nexus支持webDAV与LDAP安全身份认证. nexus提供了强大的仓库管理功能,构件搜索功能,它基于REST,友好的UI是一个extjs的REST客户端,占用较少的内存,基于简单文件系统而非数据库. 基本概念Maven 是一个...
02 mavenPOM
1 简介POM概念POM( Project Object Model,项目对象模型 ) 是 Maven 工程的基本工作单元,是一个XML文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖,等等。 pom.xml 项目模型对象文件。POM 中可以指定以下配置: 坐标GAV、Name、pakage、author 项目依赖 dependencies/dependency 项目模块 modules/module 项目集成 parent 项目构建 build、plugins/plugin 配置文件 profiles/profile pom工程之间的关系 在dependency中的依赖关系。 在parent中的继承关系 在module中的聚合关系 2 依赖关系dependency 依赖的传递主要通过dependency标签实现的 scope依赖范围标签scope的取值用来定义依赖生效的空间(main目录、test目录)和时间(开发中、部署中)。 标签位置 dependencies/dependency/scope...
02 mavenSetting
Maven的settings.xml配置详解1 基本介绍maven的两大配置文件:settings.xml和pom.xml。其中settings.xml是maven的全局配置文件,pom.xml则是文件所在项目的局部配置。 1.1 settings.xml文件位置①全局配置文件:${M2_HOME}/conf/settings.xml,对操作系统所有者生效 ②用户配置:user.home/.m2/settings.xml,只对当前操作系统的使用者生效 1.2 配置文件优先级局部配置优先于全局配置。 配置优先级从高到低:pom.xml> user settings > global settings 如果这些文件同时存在,在应用配置时,会合并它们的内容,如果有重复的配置,优先级高的配置会覆盖优先级低的。如果全局配置和用户配置都存在,它们的内容将被合并,并且用户范围的settings.xml会覆盖全局的settings.xml。 1.3 注意事项note1: Maven安装后,用户目录下不会自动生成settings.xml,只有全局...
03 maven与Idea
Idea的使用1 创建工程 创建maven工程。可以选择archetype创建模板工程,也可以不选,创建标准工程。 配置项目。基本配置包括groupId、artifactId、version maven的配置。在setting/preference自定义maven的位置,加载maven的仓库位置,而不是使用Idea集成的maven。可以通过maven工具窗口。 创建Java模块工程。在父工程中自动添加modules和package 2 侧边栏使用 扳手:配置maven 打开关闭目录 M:表示执行maven命令 展示依赖关系图 查看依赖树 3 工程导入导入整个工程IDEA直接打开目录就能识别。含有parent-pom的目录 导入单个模块project-structures Import module导入基本组件。 project-structures Import facets导入Web组件 4 生命周期提高构件过程的自动化程度。
04 maven生命周期
1 命令构成 生命周期、插件和目标 基本命令 主命令 插件 子命令 添加-Dmaven.test.skip=true表示跳过执行。 2 maven项目的生命周期 maven项目开发主要包括以下三个生命周期 clean生命周期清理项目,包含三个phase。 pre-clean:执行清理前需要完成的工作 clean:清理上一次构建生成的文件 post-clean:执行清理后需要完成的工作 default生命周期构建项目,重要的phase如下。 validate:验证工程是否正确,所有需要的资源是否可用。 compile:编译项目的源代码。 test:使用合适的单元测试框架来测试已编译的源代码。这些测试不需要已打包和布署。 Package:把已编译的代码打包成可发布的格式,比如jar。 integration-test:如有需要,将包处理和发布到一个能够进行集成测试的环境。 verify:运行所有检查,验证包是否有效且达到质量标准。 install:把包安装到maven本地仓库,可以被其他工程作为依赖来使用。 Deploy:在集成或者发布环境下执行,将最...
05 maven仓库
maven仓库1 仓库简介仓库是项目中依赖的第三方库。任何一个依赖、插件或者项目构建输出,都可以称之为构件。maven仓库能够帮我们管理构件(比如jar程序)。maven仓库有3中类型,本地、中央、远程。 2 本地仓库第一次运行maven仓库时,创建本地仓库。maven所需要的构建都是直接从本地仓库获取的。如果本地仓库没有,会首先尝试从远程仓库下载值本地仓库,然后使用本地仓库的构件。 默认的本地仓库在%USER_HOME%/.m2/respository。 可以通过settings.xml自定义存储路径: 1234567<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache...
06 maven命令插件Plugins
1 简介插件概念maven项目包含三个生命周期,每个生命周期包含多个节点。每个节点都是由maven插件实现。例如maven-clean-plugin maven实际上是一个依赖插件执行的框架。 插件提供了一个目标的集合。使用以下语法执行 12mvn [plugin-name]:[goal-name]mvn compiler:compile 插件与生命周期插件可以通过phase标签绑定到指定的生命周期环境。而在执行命令的时候,会执行该生命周期之前的所有生命周期关联的插件。 配置额外的插件在项目的build标签中,添加plugins/plugin标签,然后进行配置。 plugin的坐标groupId/artifactId/version execution 插件的id和绑定的生命周期phase。 execution 插件的名称和目标goal。 1234567891011121314151617181920212223242526272829303132<project xmlns="http://maven.apache.org/P...
07 maven项目实战
1 使用原型archetype插件,创建项目。1mvn archetype:generate "-DgroupId=com.companyname.bank" "-DartifactId=consumerBanking" "-DarchetypeArtifactId=maven-archetype-quickstart" "-DinteractiveMode=false" 其目录结构是标准的java目录结构。 2 对maven项目进行编译1mvn clean package 3 生成项目文档添加一下配置 1234567891011121314151617181920<project> ...<build><pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> ...
08 maven属性标签Properties
属性的生命与使用1 自定义maven属性值创建属性值1234<properties> <com.ykl.hello>temp</com.ykl.hello> <com.ykl.world>world</com.ykl.world></properties> 查看属性值1mvn help:evaluate 访问属性值1${a.b} 2 maven中的其他属性maven访问的系统属性这里的系统属性指的是Java虚拟机中定义的变量。 12345678Properties properties = System.getProperties();Set<Object> properitesSet = properties.keySet();for (Object propName :propertiesSet){ String propValue = properties.getProperty((String)propName); System.out....
09 maven构建标签Build
1 概述本质上配置的Build标签是对超级POM配置的Build标签的叠加。(猜想 sofaboot的目录结构也是通过build标签定义了约定的目录结构。) 2 作用配置约定的目录结构Dir 12345678910111213141516171819<build> <sourceDirectory>/Users/yinkanglong/work/notes/maven/maven源码/project03-maven-test/src/main/java</sourceDirectory> <scriptSourceDirectory>/Users/yinkanglong/work/notes/maven/maven源码/project03-maven-test/src/main/scripts</scriptSourceDirectory> <testSourceDirectory>/Users/yinkanglong/work/notes/maven/maven源码/project03-mave...













