Maven - notes 1 Maven是什么与怎么装。

PS: 本文是东拼西凑抄的笔记,可以直接去看参考的文章。
弱弱地推一下自己的hub博

Maven - notes 1

【背景】假设我们开发一个项目,或者做一个小demo,如果用···,那么我们就必须将···所依赖的jar包依次找出来,并手动导入。这个过程会想象一下就比较繁琐。

Maven是基于项目对象模型(POM, project object model),可以通过一小段描述信息(配置)来管理项目的构建,报告和文档的软件项目管理工具

主要作用:

  • 选择获取(特定版本的)jar包。

  • 寻找依赖,下载依赖。

  • 热部署,热编译。(减免重启服务器/重新部署)

目录结构

常见的简单结构

┬ /.settings
├ /src
│ ├ /main
│ └ /test
├ /target
│ └ /class
├ .classpath
├ .project
└ pom.xml
路径/文件 主要用途
/src 主要存放源代码文件,其中一般有两个文件目录;
/src/main 放用于运行项目的代码,再下一级的目录就是各种package。
/src/test 放用于测试项目的代码,同时都拥有resource资源文件。
/target 放编译后的代码。
pom.xml 资源文件,确定该项目需要使用哪些jar包的座标,并通过该座标在中央仓库进行自动下载。

Tips: 所以 pom.xml 大概是怎么做的?

<dependencies>
<dependency>
   <groupId>org.mybatis</groupId>
   <artifactId>mybatis</artifactId>
   <version>3.2.5</version>
</dependency>
</dependencies>

通过三个元素标识一个Maven项目,IDE就能去远程仓库下载了。

安装与配置

Win10

前提:建议先装好JDK。

  • 访问官网
  • 找到下载
  • 选对文件(win10应该选bin.zip吧?)
  • 查看官方指南
  • 解压到合适的路径
  • 把bin目录的绝对路径,加入系统环境变量PATH
  • 命令行输入mvn -v看看返回的版本信息。

IDEA

???

目录结构

┬ /bin
├ /boot
├ /conf
│ ├ /logging
│ ├ settings.xml
│ └ toolchains.xml
├ /lib
├ LICENCE
├ NOTICE 
└ README.txt
路径/文件 主要用途
/bin 放Maven的启动文件,包括两种:一种是直接启动,另一种是通过debug模式下启动。
/boot 放类加载器框架。
/conf 放全局配置文件setting.xml,即为所有仓库都实施的配置。仓库也有私有配置的setting,一般推荐使用私有配置,因为全局配置在Maven的安装目录里。
/lib 放Maven运行需要的各种jar包。
LICENCE Maven的软件使用许可证书
NOTICE Maven包含的第三方软件
README.txt Maven的简单介绍以及安装说明

解决下载——镜像

因为众所周知的原因,在国内用Maven一般情况是很难下载到东西的。

现在一般都是在setting.xml<mirrors>标签里加阿里云的镜像就可以了。

<mirror>
    <id>alimaven</id>
    <mirrorOf>central</mirrorOf>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>

解决下载——代理

一般是个人希望用工具去下官方仓库的东西,或者有特殊的任务需求才会用把。

能代理的前提是,你有一个可以ping得通repol.maven.org的代理服务器访问权哦。

<proxy>
	<id>optional</id>    //代理Id
	<active>true</active>   //是否要激活
	<protocol>http</protocol>  //采用协议
	<username>proxyuser</username>   //如果代理需要认证就需要账号密码
 	<password>proxypass</password>
    <host>proxy.host.net</host>  // ip
	<port>80</port>   //端口
	<nonProxyHosts>local.net|some.host.com</nonProxyHosts>  
    //不需要代理的主机ip用户|隔开,例如里面的some.host.com,即所有对这个网站的访问都不需要代理

</proxy>

参考

【长】Maven从入门到精通

【长】maven(一) maven到底是个啥玩意~

【中】Maven是什么?

【短/附书】Maven的作用到底是什么

【电子书/要注册】Maven实战

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章