Maven学习笔记

Maven学习笔记,第1张

Maven学习笔记 一、Maven 1.1 Maven简介 1.1.1 传统项目导入jar包
  1. 下载jar包
  2. 将下载的jar包拷贝到项目中(WEB-INF/lib)
  3. 选择jar文件-> 右键-> Add as Livrary

传统方式存在问题:步骤多、不同的项目中需要相同jar包时,需要分别存储、在不同环境下可能因为jar文件版本不同导致项目无法运行

1.1.2 传统项目生命周期管理

IDE提供了一键构建项目的功能,但我们无法干预具体项目生命周期过程(清理缓存、校验、编译、测试、打包、安装、部署),不同的IDE项目结构不同,导致移植性差

1.1.3 Maven简介

Maven是一个基于项目对象模型(POM)用于进行项目的依赖管理、生命周期管理的 工具软件

核心功能

  1. 项目的依赖管理
  2. 项目生命周期管理
  3. 聚合工程
1.2 Maven安装与配置 1.2.1 Maven下载

网址:https://maven.apache.org/download.cgi

1.2.2 Maven安装

开箱即用,无需安装

  • 解压压缩包
  • 解压后的目录结构
    bin 存放指令文件
    boot 包含类加载框架jar
    conf 包含maven核心配置文件setting.xml
    lib 包含maven运行所需的jar文件
  • 配置环境变量
    path中添加解压后的bin目录
1.2.3 Maven配置

maven的conf目录中的 setting.xml,是maven的核心配置文件

仓库
  1. 本地仓库配置

本地仓库中会存储项目依赖的文件
在setting.xml中添加如下标签,可配置本地仓库路径,如果不配置默认存储在C:\Users\username\.m2\repository

<localRepository>D:/local/repolocalRepository>
  1. 远程仓库及其配置

中央仓库

Maven中央仓库是由maven社区提供的仓库,无需配置,maven中内置了中央仓库的地址
中央仓库地址:http://repo.maven.apache.org/maven2/

公共仓库

除中央仓库外,还有其他远程仓库。比如aliyun仓库(http://maven.aliyun.com/nexus/content/groups/public/)
中央仓库在国外,一般选择国内的公共仓库代替,下面的示例为在setting.xml中配置阿里云仓库

  <mirrors>
    <mirror>
      <id>aliyunid>
      <mirrorOf>centralmirrorOf>
      <name>Nexus aliyunname>
      <url>http://maven.aliyun.com/nexus/content/groups/publicurl>
    mirror>
  mirrors>

私服

公司可配置一个不对外开放的仓库 可以用Nexus搭建

  1. JDK配置

限定maven项目默认的jdk版本

 <profiles>
 <profile>
 profile>
   profiles>
  <activeProfiles>
  <activeProfile>alwaysActiveProfileactiveProfile>
activeProfiles>
1.3 Maven的项目结构 1.3.1 Maven的项目结构
projectName(项目名称)
--src
    --main(存放项目源文件)
        --java
        --resources
    --text(存放项目单元测试代码)
--pom.xml
1.3.2 pom.xml

POM(Project Object Model)maven可以更具pom文件的配置对此项目进行依赖管理



<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    
    <modelVersion>4.0modelVersion>
    
    <groupId>com.jdsmgroupId>
    <artifact>personProartifact>
    <version>1.0.0version>
    
    
    <dependencies>
    	<dependency>
			<groupId>com.google.code.gsongroupId>
			<artifactId>gsonartifactId>
			<version>2.9.0version>
			<scope>testscope>
		dependency>
    dependencies>
project>
1.4 依赖管理
  • 在pom.xml中配置依赖
  • maven读取项目中的pom.xml
  • 检查本地仓库中是否有所依赖的jar,有则直接引入项目中
  • 如果本地仓库没有项目所需依赖,则连接远程仓库进行下载(需要有网络)
1.5 项目生命周期管理
  • 清理缓冲 mvn clean
  • 检查 mvn check
  • 编译 mvn compile
  • 测试 mvn test
  • 打包 mvn package
  • 安装 将所到的包安装到本地maven目录 mvn install
  • 部署 将项目生产的包发布到外部服务器仓库,以供其他开发人员共享 mvn deploy
1.6 IDEA使用Maven 1.6.1 IDEA关联Maven
File->Settings 中关联当前项目Maven,File->OthersSettings 是为以后所有项目关联Maven
说明:IDEA本身集成了Maven,考虑到IDEA和Maven版本的兼容性,idea不建议配置比默认版本更新的版本,建议使用Idea自带的Maven
1.6.2 创建Maven项目
Java项目
Web项目
创建web项目同创建java项目,在java项目的基础上增加WEB-INF->web.xml
在pom.xml中设置打包方式为war
配置web组件
部署web项目
1.7 私服

企业内部搭建的Maven仓库

  • 开发者需要依赖直接从私服下载
  • 私服可以实现企业内部依赖的共享,当企业开发了一个通用插件(jar),可以发布到私服,其他开发者就可以共享此插件
1.7.1 私服架构
有无私服对比
1.7.2 Nexus 下载安装运行

Maven 仓库管理软件可以搭建私服,如:Apache archiva,Artifactory,Sonatype Nexnus。这里使用Sonatype Nexnus搭建

  • 官网地址:https://www.sonatype.com/
  • 下载地址:https://www.sonatype.com/products/nexus-repository?topnav=true
  • 下载nexus-2.x-bundle.zip 解压即可
nexus安装目录
点击进入nexus-2.*\bin 目录,用管理员身份打开cmd执行命
1.nexus install 2.nexus uninstall 3.nexus statrt 4.nexus stop
1.7.3 Nexus 登录

登录私服管理器地址: http://localhost:8081/nexus
账号:admin
密码:admin123

1.7.4 私服仓库列表
仓库类型描述
group包含多个仓库,通过group地址可以从包含的多个仓库中找构建
host私服服务器 本地的仓库
proxy代理仓库 如aliyun仓库
仓库名描述
Releases存放项目的稳定发布版本
Snapshots临时发布版本
3rd party存放中央仓库没有,可以上传私服的该库中
1.7.5 私服仓库组的配置

为达到当私服仓库没有时去其他仓库回去依赖jar目的,所以需要配置私服仓库组
+将私服Releases配置第一位
+将私服Snapshots配置第二位
+将公共仓库Central配置第三位

1.7.6 Maven配置私服

在maven中配置私服,便可以从私服上获取jar包及其依赖

setting.xml中配置如下
1.7.7 激活私服配置
在settings.xml的activeProfiles中激活对应的profile->id 中的私服ID

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/731589.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-27
下一篇 2022-04-27

发表评论

登录后才能评论

评论列表(0条)

保存