美文网首页
使用Maven构建Java项目(转)

使用Maven构建Java项目(转)

作者: 陶然然_niit | 来源:发表于2018-11-15 12:23 被阅读0次

    Maven 是基于项目对象模型「POM」,可以通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。本文总结了 Maven 的基本用法。

    1. Maven 基本配置

    1.1 环境变量

    环境变量中添加「M2_HOME」为 maven 主目录

    在 path 中添加「;%M2_HOME%\bin」

    1.2 使用 Maven 阿里云中央仓库

    修改 Maven 根目录下 conf 文件夹中的 setting.xml 文件,内容如下:

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

    2. 创建基于 Maven 的 Java 项目

    2.1 使用命令行创建

    Maven 使用原型「archetype」插件创建工程。要创建一个简单的 Java 应用,我们将使用 maven-archetype-quickstart 插件。

    Maven 创建目录有两种方式:「archetype 可自动创建目录骨架」

    • 在 cmd 中直接执行「mvn archetype:generate」按照提示进行选择,选择如下 Archetype:
    943: remote -> org.apache.maven.archetypes:maven-archetype-quickstart (An archetype which contains a sample Maven project.)
    
    
    • 使用单行命令创建项目,命令格式如下:
    mvn archetype:generate 
     -DgourpId = 组织名,公司网址的反写 + 项目名称
     -DartifactId=项目名-模块名
     -Dversion=版本号
     -Dpackage=代码所在的包名
    
    

    示例如下:

    mvn archetype:generate
     -DgroupId=cc.bitky.demo
     -DartifactId=demo-module
     -Dversion=1.0.0-SNAPSHOT
     -Dpackage=cc.bitky.demo.module
    
    

    2.2 使用InteliJ IDEA 创建

    • 在 InteliJ IDEA 中创建基础的示例 Maven 项目,依旧选择:
    org.apache.maven.archetypes:maven-archetype-quickstart
    
    

    如图所示:

    image.png

    3. 目录结构

    3.1 Maven 项目的目录结构

    在 Maven 项目的根目录下,有如下必要的目录结构:

    • src
      • main
        • resources「存放一些资源文件」
        • java
          • package「自定义的包」
      • test
        • resources「存放一些资源文件」
        • java
          • package
    • pom.xml

    如下图所示:

    image.png

    3.2 项目根目录下「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>     <!-->maven版本</-->
      <groupId>cc.bitky.demo</groupId>       <!-->项目的包名</-->
      <artifactId>demo-module</artifactId>   <!-->模块名</-->
      <version>1.0.0-SNAPSHOT</version>      <!-->版本</-->
      <packaging>jar</packaging>
      <name>demo-module</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>3.8.1</version>
          <scope>test</scope>
          <!-- 排除依赖传递列表 -->
          <exclusions>
            <exclusion></exclusion>
          </exclusions>
        </dependency>
      </dependencies>
      <!-- 依赖的管理,一般定义在父模块中,由子模块去继承 -->
      <dependencyManagement>
        <dependencies>
          <dependency></dependency>
        </dependencies>
      </dependencyManagement>
      <!-- 对构建行为提供相应的支持 -->
      <build>
        <!-- 插件列表 -->
        <plugins>
          <plugin>
            <!-- 指定坐标 -->
            <groupId></groupId>
            <artifactId></artifactId>
            <version></version>
          </plugin>
        </plugins>
      </build>
      <!-- 一般在子模块中指定所继承的父模块 -->
      <parent></parent>
      <!-- 模块列表 -->
      <modules>
        <module></module>
      </modules>
    </project>
    
    

    4. Maven 操作

    4.1 构建命令

    • mvn -v 版本。
    • mvn compile 编译。
    • mvn test 测试。
    • mvn package 打包。
    • mvn clean 清除maven生成的target目录。
    • mvn install 将生成的jar安装到本地仓库中。
    • mvn compile: 编译主程序源代码,不会编译test目录的源代码。第一次运行时,会下载相关的依赖包,可能会比较费时
    • mvn test: 运行应用程序中的单元测试,会生成 target 文件夹:
      • 主程序编译的字节码文件在 classes 下面
      • 测试程序放在 test-classes 下
      • 所生成的测试报告放在 surefire-reports 文件夹下
    • mvn package 会在target目录下生成 Jar 包,如「maven01-model-0.0.1SNAPSHPT.jar」

    4.2 生命周期

    Maven的生命周期大概如下,这几个命令对应了一个项目的完整的构建过程,这几个步骤对应的都有插件来完成:

    • clean 「清理」
    • compile 「编译」
    • test 「测试」
    • package 「打包」
    • install「安装到本地库」

    Maven的生命周期分为三个独立的生命周期(每一个生命周期有分为若干个阶段,其中defaul是最核心的一个):

    1. clean「清理项目」
    2. default「构建项目」
    3. site「生成项目的站点」

    4.2.1 clean「清理项目」

    • pre-clean 「执行清理前的工作」
    • clean「清理上一次构建生成的所有文件」
    • post-clean「执行清理后的文件」

    4.2.2 default「构建项目」(最核心)

    • compile 「编译」
    • test 「测试」
    • package 「打包」
    • install「安装到本地库」

    4.2.3 site「生成项目站点」

    • pre-site「在生成项目站点之前要完成的工作」
    • site「生成项目的站点文档」
    • post-site「在生成项目站点后要完成的工作」
    • site-deploy「发布生成的站点到服务器上」

    注意

    • 每个独立的生命周期,只需执行其中一个命令,此时会从该生命周期的开始命令顺序执行到该命令。
    • Maven的生命周期对应的命令是顺序执行的,如果没有人为的顺序的一个个执行,那么Maven会默认的自动运行。
    • 如执行「mvn clean test」,则此时会顺序执行「pre-clean clean post-clean compile test」
    • 如执行「mvn test」,则此时会顺序执行「compile test」

    5. 参考资料

    1. Maven 教程 - 「极客学院 Wiki」
    2. 项目管理利器 — maven「慕课网」

    作者:雪中亮
    链接:https://www.jianshu.com/p/ccb836969afd
    來源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

    相关文章

      网友评论

          本文标题:使用Maven构建Java项目(转)

          本文链接:https://www.haomeiwen.com/subject/bkfyfqtx.html