@File
2019-08-14T09:45:54.000000Z
字数 5341
阅读 148
java
下载解压即可。在安装 Maven 之前,注意:需确保安装JDK
MAVEN_HOME
maven的bin目录所在路径(不包含/bin)
Path
添加 %MAVEN_HOME%/bin
maven升级:
下载新版本Maven解压,修改MAVEN_HOME路径即可
目录 | 说明 |
---|---|
bin | mvn运行脚本,配置java命令, mvn / mvnDebug |
boot | 只包含一个plexus-classworlds jar包,Maven类加载器框架 |
conf | settings.xml全局maven配置文件,【推荐】复制该文件至 ~/.m2/目录下(~表示用户目录) |
lib | Maven运行需要的Java类库,Maven jar包以及第三方依赖jar包 |
2. ~/.m2/目录(默认本地仓库目录)
Winodw:
C:\Users${user.home}\ .m2目录下
Linux:
直接在根目录
设置环境变量MAVEN_OPTS
通常设置MAVEN_OPTS的值为-Xms128m -Xmx512m,因为mvn命令实际执行java命令,项目较大时,使用Maven生成项目站点需要占用大量内存,如果没有该配置,容易得到java.lang.OutOfMemeryException。
配置用户settings.xml
用户可选择配置conf中的全局配置或.m2目录下的用户配置,推荐使用用户配置,避免影响系统中其他用户,并且配置用户配置便于maven升级,因为Maven升级后,conf下的全局配置需要重新设置,而.m2下的用户配置不变。
不使用IDE内嵌Maven
IDE集成的Maven,有些时候我们需要在终端上进行命令的操作,可能会造成版本不一致的问题。
settings.xml分类全局配置和用户配置,
全局配置直接修改安装目录下conf目录下的settings.xml文件即可
用户配置将settings.xml文件复制到.m2目录下即可
Maven的配置文件遵循就近原则;也就是说
User Setting
可以覆盖Global Setting
主要修改的地方有三个,修改本地仓库,国内镜像服务器,配置jdk的版本
修改本地仓库
<localRepository>绝对路径</localRepository>
<!-- 例如 -->
<localRepository>D:\tools\apache-maven\repository</localRepository>
配置阿里云镜像仓库。在mirrors标签里添加以下一段即可
<mirror>
<!-- 仓库id-->
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<!--
1. 配置成* 就代表我们通过访问阿里云的maven仓库从而访问网路上所有的远程仓库,
2. 配置成central,就代表我们通过阿里云访问central仓库,及 http://central.maven.org/maven2, 3. 如果配置成repo1,就代表通过阿里云访问http://repo1.maven.org/maven2,阿里云和这些远程仓库之间必须可以镜像,存在一定的镜像关系。-->
<mirrorOf>central</mirrorOf>
<!-- 可选 -->
<repository>
<releases>
<!-- 下载发布版构件 -->
<enabled>true</enabled>
<!--
Maven 从远程仓库更新的频率
never(从不)
daily(每天一次,默认)
always(每次构建都检查更新)
interval:X(每隔X分钟检查一次,X为任意整数)
-->
<updatePolicy>never</updatePolicy>
<!--
检验文件的策略,如果校验失败:
warn(默认):输出警告信息
fail: 构建失败
ignore: 忽略
-->
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<!-- 不从中央仓库下载快照版本的构件 -->
<enabled>false</enabled>
</snapshots>
</repository>
</mirror>
# 常用的仓库
1、http://maven.aliyun.com/nexus/content/groups/public/ 阿里云 (强力推荐)
2、http://www.sonatype.org/nexus/ 私服nexus工具使用
3、http://mvnrepository.com/ (推荐)
4、http://repo1.maven.org/maven2
5、http://repo2.maven.org/maven2/ 私服nexus工具使用
6、http://uk.maven.org/maven2/
7、http://repository.jboss.org/nexus/content/groups/public
8、http://maven.oschina.net/content/groups/public/
9、http://mirrors.ibiblio.org/maven2/
10、http://maven.antelink.com/content/repositories/central/
11、http://nexus.openkoala.org/nexus/content/groups/Koala-release/
12、http://maven.tmatesoft.com/content/groups/public/
在profiles标签下加入以下一段话修改jdk版本。按自己所需配置即可
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
命令
mvn org.apache.maven.plugins:maven-archetype-plugin:3.1.1:generate
简写方式
mvn archetype:generate
选择archetype(项目骨架)
执行插件之后会列出很多可用的Archetype列表,每一个Archetype前面都会对应有一个编号,同时命令行会提示一个默认的编号,其对应的Archetype为maven-archetype-quickstart创建普通java工程,
直接回车或选择而maven-archetype-webapp骨架则是用来创建一个JavaWeb Project,或输入指定编号回车
紧接着会Maven会提示输入要创建项目的groupId、artifactId、version以及包名package,确认后即可生成一个maven项目。
一行命令
mvn archetype:generate -DgroupId={project-packaging} -DartifactId={project-name}-DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
java工程
├── pom.xml 核心配置文件
└── src 源文件
├── main 存放主程序
│ └── java 存放Java源代码代码
│ └── com.wener.hello 定义包名为项目组.项目名,所有java类都在该包下创建
│ └── App.java
└── test 测试目录
└── java
└── com.wener.hello
└── AppTest.java 测试Java代码
web工程
├── pom.xml
└── src
└── main
├── resources 存放框架的配置文件等
└── webapp
├── WEB-INF
│ └── web.xml
└── index.jsp
实战开发中完整的结构
├── pom.xml
└── src 源文件
├── main 存放主程序
│ ├── java 存放Java源代码代码
│ ├── resources 核心配置文件
│ └── webapp web应用的目录
│ ├── WEB-INF
│ │ └── web.xml web应用程序入口配置
│ └── index.jsp
└── test
├── java 测试目录
└── resources 存放测试框架的配置文件等
说明
Project Object Model 项目对象模型,Maven 的核心配置文件,pom.xml,与构建过程相关的一切设置都在这个文件中进行配置
内容说明
<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">
<!-- 模型版本。maven2 maven3 必须是这样写,固定格式-->
<modelVersion>4.0.0</modelVersion>
<!-- 公司或者组织的唯一标志,公司域名反写 必要-->
<groupId>com.wener</groupId>
<!-- 本项目的唯一ID,一个groupId下面可能多个项目,就是靠artifactId来区分的 必要-->
<artifactId>demo</artifactId>
<!-- 本项目目前所处的版本号 必要-->
<version>1.0-SNAPSHOT</version>
<!-- 打包的机制,如pom,jar, war, maven-plugin, ejb, ear, rar, par,默认为jar -->
<packaging>jar</packaging>
<!--声明了一个对用户更为友好的项目名称,非必须,推荐声明, -->
<name>demo</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- 自定义常亮调用 ${常亮名} -->
<常亮名>常亮值</常亮名>
</properties>
<!-- 依赖管理 -->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>