美文网首页
maven的应用(摘自菜鸟教程)

maven的应用(摘自菜鸟教程)

作者: 轻舞凋零 | 来源:发表于2022-07-02 16:57 被阅读0次

一直使用maven,缺少系统化学习,找了本教程,系统的了解和学习下

1 maven的基本概念

maven安装

# wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
# tar -xvf  apache-maven-3.3.9-bin.tar.gz
# sudo mv -f apache-maven-3.3.9 /usr/local/
编辑 /etc/profile 文件 sudo vim /etc/profile,在文件末尾添加如下代码:

export MAVEN_HOME=/usr/local/apache-maven-3.3.9
export PATH=${PATH}:${MAVEN_HOME}/bin

pom指定环境

  • modelVersion 模型版本
  • groupId 组织
  • artifactId 项目ID
  • version 版本号

maven支持父POM继承

  • <parent></parent>
  • relativePath 默认值是../pom.xml 允许你选择路径

pom的属性

  • packaging 打包方式jar,rar
  • prerequisites 前置条件
  • issueManagement 问题管理系统
  • ciManagement 持续集成系统的名字
  • build 构建项目需要的信息
  • pluginManagement插件管理

profiles定义

  • profile 配置

依赖管理

  • dependencyManagement
  • dependencies

远程依赖仓库

 <!--发现依赖和扩展的远程仓库列表。 -->
            <repositories>
                <!--参见repositories/repository元素 -->
                <repository>
                    <releases>
                        <enabled />
                        <updatePolicy />
                        <checksumPolicy />
                    </releases>
                    <snapshots>
                        <enabled />
                        <updatePolicy />
                        <checksumPolicy />
                    </snapshots>
                    <id />
                    <name />
                    <url />
                    <layout />
                </repository>
            </repositories>
            <!--发现插件的远程仓库列表,这些插件用于构建和报表 -->
            <pluginRepositories>
                <!--包含需要连接到远程插件仓库的信息.参见repositories/repository元素 -->
                <pluginRepository>
                    <releases>
                        <enabled />
                        <updatePolicy />
                        <checksumPolicy />
                    </releases>
                    <snapshots>
                        <enabled />
                        <updatePolicy />
                        <checksumPolicy />
                    </snapshots>
                    <id />
                    <name />
                    <url />
                    <layout />
                </pluginRepository>
            </pluginRepositories>

2 maven的生命周期

maven的三个生命周期

  • clean:项目清理的处理
  • default(或 build):项目部署的处理
  • site:项目站点文档创建的处理

常用的命令

  • 验证 validate
  • 编译 compile
  • 测试 Test
  • 包装 package
  • 检查 verify
  • 安装 install
  • 部署 deploy

3 构建配置文件的类型

三种文件

  • pom.xml的文件
  • 用户级 settings.xm文件
  • 全局 conf/settings.xml

maven可以指定配置问题件xx.prod.properties
指定环境:mvn test -Denv=test

4 maven仓库

仓库分3类

  • local 本地
  • central中央
  • remote远程

本地的配置settings.xml

<localRepository>C:/MyLocalRepository</localRepository>

配置远程仓库

<repositories>
      <repository>
         <id>companyname.lib1</id>
         <url>http://download.companyname.org/maven2/lib1</url>
      </repository>
      <repository>
         <id>companyname.lib2</id>
         <url>http://download.companyname.org/maven2/lib2</url>
      </repository>
   </repositories>

maven的查找顺序

  • 本地仓库
  • 中央仓库 或者远程仓库
  • 远程仓库找不到报错

5 插件

maven的三个生命周期

  • clean:项目清理的处理
  • default(或 build):项目部署的处理
  • site:项目站点文档创建的处理

每个生命周期都预留了接口取做处理,常见的操作都是插件,比如创建项目,运行单测

6 构建java项目

idea或者命令行创建即可

7 构建&项目测试

mvn clean compile

8 引入外部依赖

这个比较常用

<dependencies>
    <!-- 在这里添加你的依赖 -->
    <dependency>
        <groupId>ldapjdk</groupId>  <!-- 库名称,也可以自定义 -->
        <artifactId>ldapjdk</artifactId>    <!--库名称,也可以自定义-->
        <version>1.0</version> <!--版本号-->
        <scope>system</scope> <!--作用域-->
        <systemPath>${basedir}\src\lib\ldapjdk.jar</systemPath> <!--项目根目录下的lib文件夹下-->
    </dependency> 
</dependencies>

9 项目模板

mvn archetype:generate

10 项目文档

mvn site

11 快照

每次构建都会在远程仓库中检查新的快照,生成最新的jar包

12 自动化构建

持续集成服务器hudson

13 依赖管理

依赖的原则

  • 依赖调节:如果两个依赖版本在依赖树里的深度是一样的时候,第一个被声明的依赖将会被使用。
  • 依赖管理:直接的指定手动创建的某个版本被使用
  • 依赖范围:包含在构建过程每个阶段的依赖。
  • 依赖排除:任何可传递的依赖都可以通过 "exclusion" 元素被排除在外
  • 依赖可选:任何可传递的依赖可以被标记为可选的,通过使用 "optional" 元素

依赖范围

  • 编译阶段
  • 供应阶段
  • 运行阶段
  • 测试阶段
  • 系统阶段
  • 导入阶段

14 自动化部署

15 web应用

16 各类ide的使用

eclipse

netbeans

intellij

相关文章

网友评论

      本文标题:maven的应用(摘自菜鸟教程)

      本文链接:https://www.haomeiwen.com/subject/kjrkbrtx.html