「Maven」基础知识


Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。 Maven的核心功能是合理叙述项目间的依赖关系,通俗点 就是 “通过pom.xml文件的配置获取jar包不用手动的去添加jar包”。该工具的原理图如下所示——

仓库

仓库可以储存资源,包含各种jar包。仓库分为两种:本地仓库和远程仓库

  • 本地仓库:是在本机电脑上储存资源的仓库,可以从远程仓库中获取资源。
  • 远程仓库:非本机仓库,可以为本地仓库获取资源,又包含两种——中央仓库(apache公司的开发者维护的资源包)和私服(包括从中央仓库)

坐标

如果我们本地的maven项目想从远程仓库中获取的maven资源包并使用(也叫依赖),需要在pom.xml中提供该资源包的坐标,坐标至少包括三个内容——groupId artifactId version,可以直接在官网中查找。

<!--依赖所属群组id-->
<groupId>junit</groupId>
<!--依赖所属项目id-->
<artifactId>junit</artifactId>
<!--依赖版本号-->
<version>4.12</version>

我们在本地新建maven项目时也需要在pom.xml中提供该项目的坐标,以方便其他人使用我们的项目成果(准确来说,是使用该项目打包后形成jar)。

maven项目的工程目录

maven项目的java工程目录如下所示——

如果这是一个web工程,则需要在main中增加一个文件夹webapp,如下图——

pom.xml写法

pom.xml在项目的根目录下(例如上文中的java01文件夹),作用是对maven项目进行配置。必须包括maven的版本号当前项目的坐标,还可以包含依赖dependencies)、件(plugins)等等。

<?xml version="1.0" encoding="UTF-8"?>

<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">
    <!-- maven的版本号 -->
    <modelVersion>4.0.0</modelVersion>

    <!--所属群组id-->
    <groupId>com.hyggge</groupId>
    <!--项目id-->
    <artifactId>java01</artifactId>
    <!--版本号-->
    <version>1.0-SNAPSHOT</version>

    <!-- 依赖 -->
    <dependencies>
        <!--具体的依赖-->
        <dependency>
          <!--依赖所属群组id-->
          <groupId>junit</groupId>
          <!--依赖所属项目id-->
          <artifactId>junit</artifactId>
          <!--依赖版本号-->
          <version>4.12</version>
        </dependency>
    </dependencies>

    <!-- 插件 -->
    <build>
      <plugins>
      
            <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-site-plugin</artifactId>
            <version>3.7.1</version>
            <executions>
            <execution>
                  <goals>
                  <goal>jar</goal>
                  </goals>
                  <phase>generate-test-resources</phase>
            </execution>
            </executions>
            </plugin>
      </plugins>
    </build>

</project>


文章作者: Hyggge
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Hyggge !
  目录