美文网首页
pom.xml文件中的Build配置

pom.xml文件中的Build配置

作者: 二狗不是狗 | 来源:发表于2020-03-22 16:15 被阅读0次

maven仓库

maven仓库其实就是存放jar包的地方,可以理解为是jar包仓库。主要分为以下几个类别:

  • 本地仓库
    就是在开发者本地默认的/.m2/repository路径中,这个是本地仓库,maven会将下载的jar包存放到这个位置里面,本地仓库的位置可以通过setting.xml文件进行修改。
  • 远程仓库
    1、中央仓库中央仓库地址:http://repo1.maven.org/maven2,这些第三方jar包通常都会存放到这个中央仓库中,maven在下载jar包的时候默认会从这个中央仓库中进行下载,但是这个地址是在国外,在国内下载的时候,速度会比较慢,所以我们通常会配置国内的阿里云镜像仓库。
    2、maven私服有些开发人员会在公司的内网中搭建一个maven私服,这样的话在内网下载jar包的时候会从这个私服中下载,速度也比较快。
  • 使用国内第三方的maven镜像下载
    如果你从中央仓库中下载比较慢,并且也不想搭建私服的话,可以从国内的第三方Maven镜像进行下载。这里推荐阿里云提供的maven镜像。
    打开你的maven地址中settings.xml文件,在mirrors标签中添加下面内容:
<mirror>  
      <id>alimaven</id>  
      <name>aliyun maven</name>  
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>  
      <mirrorOf>central</mirrorOf>          
</mirror> 
image.png

maven插件

在阅读详细文档之前我们先来谈谈我自己对maven的一些个人理解,以助于从整体大局上了解maven。
1、maven是什么,用通俗的话来将,maven能帮你构建工程,管理jar包,编译代码,还能帮你自动运行单元测试,打包,生成报表,甚至能帮你部署项目。
2、使用maven构建的项目均可以直接使用maven build完成项目的编译测试打包,无需额外配置。
3、Maven是通过pom.xml来执行任务的,其中的build标签描述了如何来编译及打包项目,而具体的编译和打包工作是通过build中配置的 plugin 来完成。当然plugin配置不是必须的,默认情况下,Maven 会绑定以下几个插件来完成基本操作。

image.png
<build>
        <finalName>loan-startup</finalName>
        <pluginManagement> 
            <plugins>
                <plugin>
                    <artifactId>maven-clean-plugin</artifactId>
                    <version>3.1.0</version>
                </plugin>
                <plugin>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>3.0.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.8.0</version>
                </plugin>
                <plugin>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.22.1</version>
                </plugin>
                <plugin>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>3.2.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-install-plugin</artifactId>
                    <version>2.5.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-deploy-plugin</artifactId>
                    <version>2.8.2</version>
                </plugin>
            </plugins>
        </pluginManagement>
</build>
  • 插件指定jdk版本号
    当你创建好一个maven工程之后,默认的jdk版本是1.5,此时在开发工具中修改其版本之后,刷新maven之后,该maven工程会自动的恢复jdk1.5的版本了,如果需要解决这个问题的话,可以在properties中填写下面内容
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>

或者也可以通过maven插件的方式配置,在pom文件中的project标签下查看有没有build标签,如果没有的话手动创建一个,之后在build标签中添加下面内容

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
            <!-- jdk的版本号 -->
            <source>11</source>
            <target>11</target>
            <encoding>UTF-8</encoding>
        </configuration>
    </plugin>
</plugins>

plugins和pluginManagement标签

  • 区别与联系
    1、两者的区别,和我们前面研究过的dependencies和dependencyManagement的区别非常类似。
    2、plugins下的plugin是真实使用的,而pluginManagement下的plugins下的plugin则仅仅是一种声明,即你在项目中的pluginManagement下声明了插件,maven不会加载该插件。
    3、子项目中可以对pluginManagement下的plugin进行信息的选择、继承、覆盖等。

  • 使用示例

<!-- 父pom声明插件,并没有引入插件 -->
<build>
    <finalName>loan-startup</finalName>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
            </plugin>
        </plugins>
    </pluginManagement>
</build>

<!-- 子pom引入插件-->
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
        </plugin>
    </plugins>
</build>

1、我们可以看到,子pom文件中,省去了版本、配置细节等信息,只需要指定groupId和artifactId,其他信息均从父pom文件继承。
2、如果子pom文件想定制自己的特定内容,可以另行设置,并会覆盖从父pom文件继承到的内容。
3、需要注意的是,dependencies和dependencyManagement均是project下的直接子元素,但是plugins和pluginManagement却是project下build的直接子元素。

相关文章

网友评论

      本文标题:pom.xml文件中的Build配置

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