文章目录
  1. 1. 1. Maven是什么
  2. 2. 2. 常用命令
  3. 3. 3. 命令和生命周期
  4. 4. 4. 具体实例
  5. 5. 其他命令

Maven作为目前主流的编译打包工具已经成为Java开发者不得不学的工具。
之所以写这篇文章是为了给同组的新人做科普使用,同时也复习一下Maven的基本操作。9

1. Maven是什么

Maven是一个项目构建工具,主要集成了打包,测试,发布等流程。

Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。

2. 常用命令

mvn compile 编译源代码
mvn deploy 发布项目
mvn test 运行应用程序中的单元测试
mvn clean 清除项目目录中的生成结果
mvn package 根据项目生成的jar
mvn install 在本地Repository中安装jar
mvn tomcat:run 启动tomcat服务
mvn clean package -Dmaven.test.skip=true:清除以前的包后重新打包,
跳过测试类

3. 命令和生命周期

编译->  测试->打包->   发布-> 运行

compile test package (deploy) run

Maven项目可以是一个普通的Java项目,也可以是JavaEE项目,它和具体的技术无关,只关心项目的构建。
最简单的认为Maven是一个Jar管理工具。
传统的项目中是由开发者手动导入jar包及相关依赖,但是这样有个问题
如果需要改变jar版本,你就得直接替换jar包。在Maven中我们只需要配置一下版本即可自动化的进行版本更新。

4. 具体实例

  1. eclipse插件m2eclipse(首先要保证安装了maven)
  2. maven project是maven module的父集。一个project包含了若干的module
    一般是定义一个父应用project,只进行jar的定义,包含了整个工程可能用到的所有jar而不进行逻辑开发。
    其他的项目继承这个项目然后进行具体的依赖管理。(目的是为了统一版本和集中管理)
    
  3. 配置GAV

    Group ID             组织名                                      一般是公司域名倒写                com.hispeed
    artifact ID         原型名,也就是项目名                        项目名                            test-maven
    version             本项目当前版本                            默认0.0.1-snapshot                1.0.0
    
  4. 项目目录

    src/main/java                        项目java代码
    src/main/resources                    资源文件包括配置文件
    src/test/java                        测试java代码
    src/test/resources                    资源文件包括配置文件
    target                                编译打包的目录
    
  5. 核心: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">
          <modelVersion>4.0.0</modelVersion>
          <groupId>com.hispeed</groupId>
          <artifactId>test-maven</artifactId>
          <version>1.0.0</version>
          <name>测试一下名字</name>
          <description>这是个测试项目</description>
    
</project>
  1. 添加依赖
    父工程GAV坐标

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.2.RELEASE</version>
    </parent>
    

当前项目配置

<properties>
    <project.build.sourceEncoding>GBK</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.7</java.version>
</properties>

具体依赖

<dependencies>
    <!-- thymeleaf -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    <!-- spring-boot-start-web -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!-- spring-boot-starter-test -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <!-- spring-boot-devtools -->
    <!-- <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> 
        optional=true,依赖不会传递,该项目依赖devtools;之后依赖myboot项目的项目如果想要使用devtools,需要重新引入 <optional>true</optional> 
        </dependency> -->
    <!-- OKhttp -->
    <dependency>
        <groupId>com.squareup.okhttp3</groupId>
        <artifactId>okhttp</artifactId>
        <version>3.2.0</version>
    </dependency>
    <!-- common-codec -->
    <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>1.10</version>
    </dependency>
</dependencies>
构建配置
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

其他命令

如果项目是一个webapp,需要通过tomcat容器进行部署,则运行tomcat的命令为

项目右键-->maven-->maven build... 输入
(mvn)tomcat7:run
点击run即可启动容器
文章目录
  1. 1. 1. Maven是什么
  2. 2. 2. 常用命令
  3. 3. 3. 命令和生命周期
  4. 4. 4. 具体实例
  5. 5. 其他命令
Fork me on GitHub