zoukankan      html  css  js  c++  java
  • pom.xml文件设置

    一个相对完整的maven配置文件

    <?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">
    
      <!--pom版本-->
      <modelVersion>4.0.0</modelVersion>
    
      <!--项目坐标-->
      <groupId>cn.itcast.account.mvnbook</groupId>
      <artifactId>account</artifactId>
      <version>1.0-SNAPSHOT</version>
      <packaging>pom</packaging>
    
      <!--聚合模块-->
      <modules>
        <module>accounte-mail</module>
        <module>account-api</module>
      </modules>
    
      <!--参数管理-->
      <properties>
        <spring.version>5.1.4.RELEASE</spring.version>
        <mybatis.version>3.5.0</mybatis.version>
        <mybatis-spring.version>2.0.0</mybatis-spring.version>
        <mail.version>1.4.7</mail.version>
        <greenmail.version>1.5.9</greenmail.version>
        <junit.version>4.12</junit.version>
        <maven-compile-plugin.version>3.8.0</maven-compile-plugin.version>
        <jdk.version>1.8</jdk.version>
      </properties>
    
      <!--仓库管理,即去哪个远程仓库下载依赖-->
      <repositories>
        <!--正式版本-->
        <repository>
          <id>releases</id>
          <url>http://</url>
        </repository>
        <!--快照版本-->
        <repository>
          <id>snapshots</id>
          <url>http://</url>
        </repository>
      </repositories>
    
      <!--部署管理,即将项目作为构件部署到哪个远程仓库-->
      <distributionManagement>
        <!--正式版本-->
        <repository>
          <id>releases</id>
          <url>http://</url>
        </repository>
        <!--快照版本-->
        <snapshotRepository>
          <id>snapshots</id>
          <url>http://</url>
        </snapshotRepository>
      </distributionManagement>
    
      <!--依赖管理,子模块可以选择性继承-->
      <dependencyManagement>
        <dependencies>
          <!--spring starts-->
          <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
          </dependency>
          <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring.version}</version>
          </dependency>
          <!--spring ends-->
          <!--mybatis starts-->
          <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>${mybatis.version}</version>
          </dependency>
          <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>${mybatis-spring.version}</version>
          </dependency>
          <!--mybatis ends-->
          <!--mail starts-->
          <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>${mail.version}</version>
          </dependency>
          <dependency>
            <groupId>com.icegreen</groupId>
            <artifactId>greenmail</artifactId>
            <version>${greenmail.version}</version>
            <scope>test</scope>
          </dependency>
          <!--mail ends-->
          <!--test starts-->
          <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit.version}</version>
            <scope>test</scope>
          </dependency>
          <!--test ends-->
        </dependencies>
      </dependencyManagement>
    
      <!--项目构建管理-->
      <build>
        <!--插件管理,子模块可以选择性继承-->
        <pluginManagement>
          <plugins>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-compiler-plugin</artifactId>
              <version>${maven-compile-plugin.version}</version>
              <configuration>
                <source>${jdk.version}</source>
                <target>${jdk.version}</target>
              </configuration>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    
    </project>

    其中,repositories标签的作用是设置远程仓库。Maven项目需要构件(例如jar包)时,会首先去本地仓库中查找。如果本地仓库中不存在,会去远程仓库下载。如果这里不配置repositories,由于所有的pom文件都继承自超级POM,会默认去中央仓库中下载,效率比较低。为了提高效率,在repositories标签中设置私服,当本地仓库中不存在某个构件时,Maven会首先从私服中获取。如果私服中依然不存在,再从外部的远程仓库(例如中央仓库)下载,缓存在私服,供以后局域网用户使用。注意,如果私服设置了权限验证,需要在Maven的setting.xml文件中设置权限校验的参数。

    <servers>
    <!--id必须与pom文件中的repositories标签中设置的一致--> <server> <id>releases</id> <username>admin</username> <password>admin123</password> </server> <server> <id>snapshots</id> <username>admin</username> <password>admin123</password> </server> </servers>

    modules标签的作用是声明要聚合的模块,在该目录了下执行mvn命令,会一次性执行这里声明的所有被聚合的模块。需要注意的是其子标签module的值应该是目录名称,但通常与被聚合的模块的artifactId一致。

    distributionManagement标签的作用是设置项目部署位置,即maven clean deploy命令将项目以构件(例如jar、war、pom等)的形式部署到哪个私服。如果不设置,maven clean deploy命令将无法使用,即无法将项目推送到远程仓库。

    dependencyManagement标签的作用是声明项目用到的所有依赖,统一管理依赖的版本等。子模块可以选择性继承这里声明的依赖,只需要设置groupId和artifactId即可,version和scope属性会继承父模块声明的。

    pluginManagement标签跟dependencyManagement类似,子模块也可以选择性继承这里声明的插件。

  • 相关阅读:
    抽象类使用细节
    super关键字
    JDK,JRE,JVM三者之间的爱恨情仇
    LinkedHashSet
    HashSet扩容成红黑树机制
    Set之HashSet
    finally关键字
    Hashcode方法
    equals方法和==的区别
    LinkedList
  • 原文地址:https://www.cnblogs.com/dubhlinn/p/10346617.html
Copyright © 2011-2022 走看看