简介

Maven项目对象模型,可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。主要功能:相同的项目结构和统一维护jar包。

安装

  1. 下载
    官方下载地址:http://maven.apache.org/download.cgi
  2. 配置环境变量
    右键我的电脑-属性-高级系统设置-环境变量-系统变量-Path
    添加maven路径:
    D:\学习\Soft\Maven\apache-maven-3.5.0\bin
  3. 验证
    在cmd中输入mvn -v显示相关信息

仓库

  1. 简介
    仓库就是用于存放项目需要的jar包的。Maven采用一个仓库,多个项目的方式,让多个项目共享一个仓库里的相同jar包。
  2. 修改默认下载路径
    打开 apache-maven-3.5.0\conf\settings.xml
    在160-165行的mirrors标签内添加阿里云的镜像地址

    1
    2
    3
    4
    5
    6
    <mirror>
    <id>alimaven</id>
    <mirrorOf>central</mirrorOf>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
    </mirror>
  3. 修改默认仓库地址
    打开 apache-maven-3.5.0\conf\settings.xml
    在55行localRepository标签内添加默认仓库地址
    <localRepository>D:/学习/Soft/Maven/repository</localRepository>

创建Maven项目(cmd)

  1. 创建并进入Test文件夹
    cd D:\学习\学习笔记\Maven\Test
  2. 在Test文件夹下创建Maven项目
    • 执行命令
      mvn archetype:generate -DgroupId=com.lousen -DartifactId=testMaven -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
    • archetype:generate 表示创建个项目
    • -DgroupId 项目包名: com.lousen
    • -DartifactId 项目名称: testMaven
    • -DarchetypeArtifactId 项目类型: maven-archetype-quickstart
    • -DinteractiveMode:false 表示前面参数都给了,就不用一个一个地输入了
    • 运行成功会看到绿色的BUILD SUCCESS
  3. 可返回Test文件夹查看创建的Maven项目结构
  4. 运行package命令
    cd testMaven
    mvn package
    注:运行这个命令之前要先把当前路径切换到testMaven中
    最后会看到一个绿色的BUILD SUCCESS
    package做了很多事情,编译,测试,打包,最后生成了一个Test\target\testMaven-1.0-SNAPSHOT.jar包,里面放了APP这个类
  5. 执行testMaven-1.0-SNAPSHOT.jar
    java -cp target/testMaven-1.0-SNAPSHOT.jar com.lousen.testMaven.App
    最后输出Hello World!

创建Maven项目(Eclipse)

配置Eclipse

  1. 配置Maven路径
    Window->Preferences->Maven->Installations
    Add
    Installation home->D:\学习\Soft\Maven\apache-maven-3.5.0
  2. 配置仓库路径
    Window->Preferences->Maven->User Settings
    Global Settings->D:\学习\Soft\Maven\apache-maven-3.5.0\conf\settings.xml
    User Settings->D:\学习\Soft\Maven\apache-maven-3.5.0\conf\settings.xml
    点击一下Reindex,确保local Repository->D:\学习\Soft\Maven\repository

新建Maven项目(java)

  • File->New->Other->Maven->Maven Project->Next
  • Use default Workspace location(默认选项)->Next
  • maven-archetype-quickstart(Java项目)->Next
  • Group Id->地址(如com.lousen),Artifact ID->项目名称 ->Finish
    • 注:默认包结构为Group Id+Artifact ID如com.lousen.testMaven
  • 目录结构
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    -testMAven
    -src/main/java
    -com.lousen.testMaven
    App.java
    -src/test/java
    -com.lousen.testMaven
    AppTest.java
    -src
    main
    test
    target
    pom.xml

添加包

示例:添加连接mysql的jar包

1
2
3
4
5
6
7
8
9
public class App
{
public static void main( String[] args ) throws ClassNotFoundException
{
Class.forName("com.mysql.jdbc.Driver");
System.out.println("初始化驱动成功");
System.out.println( "Hello World!" );
}
}

  1. 配置pom.xml文件
    pom.xml->Dependencies->Add->Enter GroupId, artifactId or sha1 prefix or pattern(*)->输入mysql搜索->mysql-connector-java->OK
    注:Scope要选择compile,表示编译期间要用到。
    注:如果输入了mysql下面没有自动显示搜索结果,点击Refresh indexes刷新即可
  2. 运行测试App.java
    输出初始化驱动成功

新建Maven项目(javaWeb)

  • File->New->Other->Maven->Maven Project->Next
  • Use default Workspace location(默认选项)->Next
  • maven-archetype-webapp (JavaWeb项目)->Next
  • Group Id->地址(如com.lousen),Artifact ID->项目名称 ->Finish
    • 注:默认包结构为Group Id+Artifact ID如com.lousen.testMaven
  • 生成的项目有两个问题
    1. 没有创建java源代码目录
      • 右键项目->Build Path->Configure Bulid Path…
      • Libraries->JRE System Library->Edit->WorkSpace default JRE->finish
    2. 添加servlet的jar包
      pom.xml->Dependencies->Add->javax.servlet-api
  • 右键项目->Run As->启动tomcat运行项目

创建Maven项目(Intellij IDEA)

配置Intellij IDEA

  • File->Other Settings->Default Settings->Build, Execute, Deployment->Build Tools->Maven
  • 修改Maven home directory->D:\学习\Soft\Maven\apache-maven-3.5.0
  • 修改User settings file->D:\学习\Soft\Maven\apache-maven-3.5.0\con
    f\settings.xml
  • Local repository会被自动识别为D:\学习\Soft\Maven\repository

新建Maven项目(java)

  • File->New->Project->Maven->勾选Create from archetype->选择org.apache.maven.archetypes:maven-archetype-quickstart->Next
  • GroupId->com.lousen,ArtifactId->testMaven->Next
  • Next
  • Finish
  • 此时,Maven项目创建了,IDEA还会做一些初始化的工作,那么需要点击右下角的 Import Changes
  • Maven Import之后,就会得到一个经典的Maven项目

添加包

示例:添加连接mysql的jar包

1
2
3
4
5
6
7
8
9
public class App
{
public static void main( String[] args ) throws ClassNotFoundException
{
Class.forName("com.mysql.jdbc.Driver");
System.out.println("初始化驱动成功");
System.out.println( "Hello World!" );
}
}

  1. 修改pom.xml文件
    在dependencies标签内添加代码

    1
    2
    3
    4
    5
    <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.20</version>
    </dependency>
  2. 修改了pom.xml之后,IDEA上会弹出Maven projects need to be imported,点击Import Changes

  3. 运行测试App.java
    输出初始化驱动成功

新建Maven项目(javaWeb)

  • File->New->Project->Maven->勾选Create from archetype->选择org.apache.maven.archetypes:maven-archetype-webapp->Next
  • GroupId->com.lousen,ArtifactId->testMaven->Next
  • Next
  • Finish
  • 此时,Maven项目创建了,IDEA还会做一些初始化的工作,那么需要点击右下角的 Import Changes
  • 新建java源代码目录
    • 右键main目录-> New->Directory->输入java
    • 右键java->Mark Directory as-> Sources Root
  • 右键java->New->Servlet->HelloServlet
  • 修改web.xml文件,配置映射
  • 修改pom.xml文件,添加servlet的jar包
    在dependencies标签内添加代码

    1
    2
    3
    4
    5
    <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    </dependency>
  • 配置TomCat

  • 启动TomCat
    注:在新建Servlet步骤里,右键java源代码目录,无法看到Servlet选型,是因为.iml文件有问题。在IDEA中打开.iml文件替换以下代码,重新打开项目即可看到Servlet选型。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <?xml version="1.0" encoding="UTF-8"?>
    <module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
    <component name="FacetManager">
    <facet type="web" name="Web">
    <configuration>
    <descriptors>
    <deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/src/main/webapp/WEB-INF/web.xml" />
    </descriptors>
    <webroots>
    <root url="file://$MODULE_DIR$/src/main/webapp" relative="/" />
    </webroots>
    <sourceRoots>
    <root url="file://$MODULE_DIR$/src/main/resources" />
    <root url="file://$MODULE_DIR$/src/main/java" />
    </sourceRoots>
    </configuration>
    </facet>
    </component>
    <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_5">
    <output url="file://$MODULE_DIR$/target/classes" />
    <output-test url="file://$MODULE_DIR$/target/test-classes" />
    <content url="file://$MODULE_DIR$">
    <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
    <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
    <excludeFolder url="file://$MODULE_DIR$/target" />
    </content>
    <orderEntry type="inheritedJdk" />
    <orderEntry type="sourceFolder" forTests="false" />
    <orderEntry type="library" scope="TEST" name="Maven: junit:junit:3.8.1" level="project" />
    </component>
    </module>

常用的mvn命令

  1. 打包
    mvn package
    生成压缩文件:java项目为jar包,web项目为war包,放在target目录下。

  2. 清除
    mvn clean
    删除target目录

  3. 安装
    mvn install
    将压缩文件(jar或war)上传到本地仓库

最后更新: 2020年07月27日 03:45

原始链接: https://www.lousenjay.top/2018/08/14/Maven入门学习/