美文网首页Java
项目管理工具maven

项目管理工具maven

作者: 盗梦者_56f2 | 来源:发表于2019-03-30 17:27 被阅读0次

    介绍

    Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。
    Maven 也可被用于构建和管理各种项目,例如 C#,Ruby,Scala 和其他语言编写的项目。

    安装

    1. 安装jdk
    2. 安装maven
    3. 配置环境变量

    仓库

    Maven 仓库能帮助我们管理构件(主要是JAR),它就是放置所有JAR文件(WAR,ZIP,POM等等)的地方。
    Maven 仓库有三种类型:

    1. 本地资源库
      Maven的本地资源库是用来存储所有项目的依赖关系(插件jar和其他文件,这些文件被Maven下载)到本地文件夹。很简单,当你建立一个Maven项目,所有相关文件将被存储在你的Maven本地仓库。默认情况下,Maven的本地资源库默认为 .m2 目录文件夹。通常情况下,可改变默认的 .m2 目录下的默认本地存储库文件夹到其他更有意义的名称。
    2. 中央存储库
      当你建立一个 Maven 的项目,Maven 会检查你的 pom.xml 文件,以确定哪些依赖下载。首先,Maven 将从本地资源库获得 Maven 的本地资源库依赖资源,如果没有找到,然后把它会从默认的 Maven 中央存储库 – https://search.maven.org/查找下载。
    3. 远程存储库
      在Maven中,当你声明的库不存在于本地存储库中,也不存在于Maven中心储存库,该过程将停止并将错误消息输出到 Maven 控制台。它是开发人员自己定制仓库,包含了所需要的代码库或者其他工程中用到的 jar 文件。
      你需要声明远程仓库在 pom.xml 文件这样:
      e.g. 声明Java.net储存库
    <repositories>
        <repository>
            <id>java.net</id>
            <url>https://maven.java.net/content/repositories/public/</url>
        </repository>
    </repositories>
    

    现在,Maven的依赖库查询顺序更改为:

    1. 在 Maven 本地资源库中搜索,如果没有找到,进入第 2 步,否则退出。
    2. 在 Maven 中央存储库搜索,如果没有找到,进入第 3 步,否则退出。
    3. 在java.net Maven的远程存储库搜索,如果没有找到,提示错误信息,否则退出

    坐标

    e.g.

    <dependencies>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.14</version>
        </dependency>
    </dependencies>
    

    当 Maven 编译或构建,log4j 的 jar 会自动下载,并把它放到 Maven 本地存储库,所有由 Maven 管理。
    访问 Maven 中心储存库,搜索下载您想要的jar,找到 Maven 坐标。

    生命周期

    Maven 有以下三个标准的生命周期:

    #1. 项目清理的处理
    mvn clean #删除target目录
    #2. 项目构建(build)的处理
    mvn compile  #编译该项目的源代码
    mvn test #运行测试使用合适的单元测试框架(JUnit)
    mvn package #提取编译后的代码,并在其分发格式打包,如JAR,WAR或EAR文件
    mvn install #将包安装到本地存储库,它可以用作当地其他项目的依赖
    mvn deploy #复制最终的包到远程仓库与其他开发者和项目共享
    #3. 项目站点文档创建的处理
    mvn site #生成项目的站点文档
    

    当一个阶段通过 Maven 命令调用时,例如 mvn compile,只有该阶段之前以及包括该阶段在内的所有阶段会被执行。
    每个生命周期中都包含着一系列的阶段(phase)。这些 phase 就相当于 Maven 提供的统一的接口,然后这些 phase 的实现由 Maven 的插件来完成。
    我们在输入 mvn 命令的时候 比如 mvn clean,clean 对应的就是 Clean 生命周期中的 clean 阶段。但是 clean 的具体操作是由 maven-clean-plugin 来实现的。
    所以说 Maven 生命周期的每一个阶段的具体实现都是由 Maven 插件实现的

    POM

    POM( Project Object Model,项目对象模型 ) 是 Maven 工程的基本工作单元,是一个XML文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖,等等。
    e.g.

    <properties>
            <jdk.version>1.8</jdk.version>
            <junit.version>4.11</junit.version>
            <jstl.version>1.2</jstl.version>
    </properties>
    <dependencies>
            <!--单元测试-->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit.version}</version>
                <scope>test</scope>
            </dependency>
            <!--日志类型-->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>jcl-over-slf4j</artifactId>
                <version>${jcl-over-slf4j.version}</version>
            </dependency>
    </dependencies>
    <build>
          <plugins>
            <!--添加编译器插件来告诉 Maven 使用哪个 JDK 版本是用来编译项目-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>${jdk.version}</source>
                    <target>${jdk.version}</target>
                </configuration>
            </plugin>
          </plugins>
    </build>
    

    构建Java项目

    要创建一个简单的 Java 应用,我们将使用 maven-archetype-quickstart 插件。
    在下面的例子中,我们将在 C:\MVN 文件夹下创建一个基于 maven 的 java 应用项目。
    命令格式如下:

    mvn archetype:generate -DgroupId=com.companyname.bank -DartifactId=consumerBanking -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
    
    

    参数说明:

    • -DgourpId: 组织名,公司网址的反写 + 项目名称
    • -DartifactId: 项目名-模块名
    • -DarchetypeArtifactId: 指定 ArchetypeId,maven-archetype-quickstart,创建一个简单的 Java 应用
    • -DinteractiveMode: 是否使用交互模式

    相关文章

      网友评论

        本文标题:项目管理工具maven

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