[关闭]
@File 2019-08-14T09:45:54.000000Z 字数 5341 阅读 147

Maven安装

java


1、下载

官方下载

下载解压即可。在安装 Maven 之前,注意:需确保安装JDK

2、环境变量配置

  1. MAVEN_HOME

    maven的bin目录所在路径(不包含/bin)

  2. Path

    添加 %MAVEN_HOME%/bin

  3. maven升级:

    下载新版本Maven解压,修改MAVEN_HOME路径即可

3、Maven目录说明

  1. 说明
目录 说明
bin mvn运行脚本,配置java命令, mvn / mvnDebug
boot 只包含一个plexus-classworlds jar包,Maven类加载器框架
conf settings.xml全局maven配置文件,【推荐】复制该文件至 ~/.m2/目录下(~表示用户目录)
lib Maven运行需要的Java类库,Maven jar包以及第三方依赖jar包

2. ~/.m2/目录(默认本地仓库目录)

4、Maven常用配置

  1. 设置环境变量MAVEN_OPTS

    通常设置MAVEN_OPTS的值为-Xms128m -Xmx512m,因为mvn命令实际执行java命令,项目较大时,使用Maven生成项目站点需要占用大量内存,如果没有该配置,容易得到java.lang.OutOfMemeryException

  2. 配置用户settings.xml

    用户可选择配置conf中的全局配置或.m2目录下的用户配置,推荐使用用户配置,避免影响系统中其他用户,并且配置用户配置便于maven升级,因为Maven升级后,conf下的全局配置需要重新设置,而.m2下的用户配置不变。

  3. 不使用IDE内嵌Maven

    IDE集成的Maven,有些时候我们需要在终端上进行命令的操作,可能会造成版本不一致的问题。

5、settings.xml

settings.xml分类全局配置和用户配置,

全局配置直接修改安装目录下conf目录下的settings.xml文件即可

用户配置将settings.xml文件复制到.m2目录下即可

Maven的配置文件遵循就近原则;也就是说 User Setting 可以覆盖 Global Setting

6、settings.xml文件内容

主要修改的地方有三个,修改本地仓库,国内镜像服务器,配置jdk的版本

  1. 修改本地仓库

    1. <localRepository>绝对路径</localRepository>
    2. <!-- 例如 -->
    3. <localRepository>D:\tools\apache-maven\repository</localRepository>
  2. 配置阿里云镜像仓库。在mirrors标签里添加以下一段即可

    1. <mirror>
    2. <!-- 仓库id-->
    3. <id>alimaven</id>
    4. <name>aliyun maven</name>
    5. <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    6. <!--
    7. 1. 配置成* 就代表我们通过访问阿里云的maven仓库从而访问网路上所有的远程仓库,
    8. 2. 配置成central,就代表我们通过阿里云访问central仓库,及 http://central.maven.org/maven2, 3. 如果配置成repo1,就代表通过阿里云访问http://repo1.maven.org/maven2,阿里云和这些远程仓库之间必须可以镜像,存在一定的镜像关系。-->
    9. <mirrorOf>central</mirrorOf>
    10. <!-- 可选 -->
    11. <repository>
    12. <releases>
    13. <!-- 下载发布版构件 -->
    14. <enabled>true</enabled>
    15. <!--
    16. Maven 从远程仓库更新的频率
    17. never(从不)
    18. daily(每天一次,默认)
    19. always(每次构建都检查更新)
    20. interval:X(每隔X分钟检查一次,X为任意整数)
    21. -->
    22. <updatePolicy>never</updatePolicy>
    23. <!--
    24. 检验文件的策略,如果校验失败:
    25. warn(默认):输出警告信息
    26. fail: 构建失败
    27. ignore: 忽略
    28. -->
    29. <checksumPolicy>warn</checksumPolicy>
    30. </releases>
    31. <snapshots>
    32. <!-- 不从中央仓库下载快照版本的构件 -->
    33. <enabled>false</enabled>
    34. </snapshots>
    35. </repository>
    36. </mirror>
    1. # 常用的仓库
    2. 1http://maven.aliyun.com/nexus/content/groups/public/ 阿里云 (强力推荐)
    3. 2http://www.sonatype.org/nexus/ 私服nexus工具使用
    4. 3http://mvnrepository.com/ (推荐)
    5. 4http://repo1.maven.org/maven2
    6. 5http://repo2.maven.org/maven2/ 私服nexus工具使用
    7. 6http://uk.maven.org/maven2/
    8. 7http://repository.jboss.org/nexus/content/groups/public
    9. 8http://maven.oschina.net/content/groups/public/
    10. 9http://mirrors.ibiblio.org/maven2/
    11. 10http://maven.antelink.com/content/repositories/central/
    12. 11http://nexus.openkoala.org/nexus/content/groups/Koala-release/
    13. 12http://maven.tmatesoft.com/content/groups/public/
  3. 在profiles标签下加入以下一段话修改jdk版本。按自己所需配置即可

    1. <profile>
    2. <id>jdk-1.8</id>
    3. <activation>
    4. <activeByDefault>true</activeByDefault>
    5. <jdk>1.8</jdk>
    6. </activation>
    7. <properties>
    8. <maven.compiler.source>1.8</maven.compiler.source>
    9. <maven.compiler.target>1.8</maven.compiler.target>
    10. <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
    11. </properties>
    12. </profile>

四、创建工程

1、使用Maven命令创建(了解)

  1. 命令

    1. mvn org.apache.maven.plugins:maven-archetype-plugin:3.1.1:generate
    2. 简写方式
    3. mvn archetype:generate
  2. 选择archetype(项目骨架)

    执行插件之后会列出很多可用的Archetype列表,每一个Archetype前面都会对应有一个编号,同时命令行会提示一个默认的编号,其对应的Archetype为maven-archetype-quickstart创建普通java工程,
    直接回车或选择而maven-archetype-webapp骨架则是用来创建一个JavaWeb Project,或输入指定编号回车
    紧接着会Maven会提示输入要创建项目的groupId、artifactId、version以及包名package,确认后即可生成一个maven项目。

  3. 一行命令

    1. mvn archetype:generate -DgroupId={project-packaging} -DartifactId={project-name}-DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

2、项目结构说明

  1. java工程

    1. ├── pom.xml 核心配置文件
    2. └── src 源文件
    3. ├── main 存放主程序
    4. └── java 存放Java源代码代码
    5. └── com.wener.hello 定义包名为项目组.项目名,所有java类都在该包下创建
    6. └── App.java
    7. └── test 测试目录
    8. └── java
    9. └── com.wener.hello
    10. └── AppTest.java 测试Java代码
  2. web工程

    1. ├── pom.xml
    2. └── src
    3. └── main
    4. ├── resources 存放框架的配置文件等
    5. └── webapp
    6. ├── WEB-INF
    7. └── web.xml
    8. └── index.jsp
  3. 实战开发中完整的结构

    1. ├── pom.xml
    2. └── src 源文件
    3. ├── main 存放主程序
    4. ├── java 存放Java源代码代码
    5. ├── resources 核心配置文件
    6. └── webapp web应用的目录
    7. ├── WEB-INF
    8. └── web.xml web应用程序入口配置
    9. └── index.jsp
    10. └── test
    11. ├── java 测试目录
    12. └── resources 存放测试框架的配置文件等

3、为什么要固定项目结构

  1. Maven 要负责项目的自动化构建,以编译为例,Maven 要想自动进行编译,那么它必须知道 Java 的源文件保存在哪里,这样约定之后,不用我们手动指定位置,Maven 能知道位置,从而帮我们完成自动编译。
  2. 遵循 约定—>配置--->编码。即能进行配置的不要去编码指定,能事先约定规则的不要去进行配置。这样既减轻了劳动力,也能防止出错。当然我们也可以手动去配置,但不推荐

4、其它常用maven命令(了解)

  1. mvn clean
    说明: 清理项目生产的临时文件,一般是模块下的target目录
  2. mvn compile
    前面我们按照maven约束好的文件路径建好项目后,加入pom.xml 在命令行输入mvn compile后,maven就会自动帮我们下载依赖jar,为代码生成字节码文件等。我们把这个过程称为 编译。
  3. mvn package
    说明: 项目打包工具,会在模块下的target目录生成jar或war等文件
  4. mvn test
    说明: 测试命令,或执行src/test/java/下junit的测试用例.
  5. mvn install
    说明: 模块安装命令 将打包的的jar/war文件复制到你的本地仓库中,供其他模块使用 -Dmaven.test.skip=true 跳过测试(同时会跳过test compile)
  6. mvn deploy
    说明: 发布命令 将打包的文件发布到远程参考,提供其他人员进行下载依赖 ,一般是发布到公司的私服

五、pom.xml说明

  1. 说明

    Project Object Model 项目对象模型,Maven 的核心配置文件,pom.xml,与构建过程相关的一切设置都在这个文件中进行配置

  2. 内容说明

    1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    3. <!-- 模型版本。maven2 maven3 必须是这样写,固定格式-->
    4. <modelVersion>4.0.0</modelVersion>
    5. <!-- 公司或者组织的唯一标志,公司域名反写 必要-->
    6. <groupId>com.wener</groupId>
    7. <!-- 本项目的唯一ID,一个groupId下面可能多个项目,就是靠artifactId来区分的 必要-->
    8. <artifactId>demo</artifactId>
    9. <!-- 本项目目前所处的版本号 必要-->
    10. <version>1.0-SNAPSHOT</version>
    11. <!-- 打包的机制,如pom,jar, war, maven-plugin, ejb, ear, rar, par,默认为jar -->
    12. <packaging>jar</packaging>
    13. <!--声明了一个对用户更为友好的项目名称,非必须,推荐声明, -->
    14. <name>demo</name>
    15. <url>http://maven.apache.org</url>
    16. <properties>
    17. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    18. <!-- 自定义常亮调用 ${常亮名} -->
    19. <常亮名>常亮值</常亮名>
    20. </properties>
    21. <!-- 依赖管理 -->
    22. <dependencies>
    23. <dependency>
    24. <groupId>junit</groupId>
    25. <artifactId>junit</artifactId>
    26. <version>4.12</version>
    27. <scope>test</scope>
    28. </dependency>
    29. </dependencies>
    30. </project>
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注