maven的pom文件

这篇具有很好参考价值的文章主要介绍了maven的pom文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

maven项目中会有pom文件, 当新建项目时候, 需要添加我们需要的依赖包。所以整理了一份比较常用的依赖包的pom,方便以后新建项目或者添加依赖包时copy且快捷。不需要的依赖可以删掉,避免首次远程拉取失败和缩小项目打包大小。

<?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">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.yulisao</groupId>
    <artifactId>mydemo</artifactId>
    <packaging>war</packaging>
    <version>1.0.0-SNAPSHOT</version>


    <!-- pom文件的常量配置 下面需使用的地方用${标签名}进行引用  这一段非必须有 -->
    <properties>
        <project.name>yulisao</project.name> <!-- 项目名称 -->
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceencoding>UTF-8</project.build.sourceencoding> <!--使用utf-8编码-->
        <spring.version>4.3.14.RELEASE</spring.version> <!-- spring 版本 -->
        <mysql.version>5.1.42</mysql.version> <!-- mysql数据库版本 -->
        <sqlserver.version>4.1.0</sqlserver.version> <!-- sqlserver数据库版本 -->
        <!-- 需要定义变量就自行继续添加 -->
    </properties>


    <!-- 开启springboot的特性 继承parent或者引入dependencies-->
    <!-- 也表示当前pom继承了parent里面的pom 按住ctrl点击下面的parent即可进去查看-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.1.RELEASE</version>
    </parent>


    <!-- 自定义仓库地址 非必须 -->
   <!-- <repositories>
        <repository>
            <id>aliyun</id>
            <url>https://maven.aliyun.com/repository/public</url>
            <releases>
                <enabled>true</enabled> &lt;!&ndash; 允许下载releases版本 &ndash;&gt;
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>
    <pluginRepositories> &lt;!&ndash; pluginRepositories配置了就按配置执行,省略了没配置就按本地默认的执行 &ndash;&gt;
        <pluginRepository>
            <id>aliyun-plugin</id>
            <url>https://maven.aliyun.com/repository/public</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>-->


    <dependencies>
        <!--springboot框架所需-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
            <version>1.5.4.RELEASE</version>
        </dependency>

        <!--数据库支持-->
        <!-- 根据自己的数据库选择一个即可 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql.version}</version>
        </dependency>
        <dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>sqljdbc4</artifactId>
            <version>${sqlserver.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-mongodb</artifactId>
            <version>3.4.11</version>
        </dependency>


        <!-- 缓存相关 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-cache</artifactId>
            <version>2.1.9.RELEASE</version>
        </dependency>


        <!-- 基础工具依赖 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.4</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.9</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-collections4</artifactId>
            <version>4.4</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-commons</artifactId>
            <version>3.1.0</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>

        <!-- Mybatis相关 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.6</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-core</artifactId>
            <version>1.3.6</version>
            <scope>compile</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.9</version>
        </dependency>



        <!-- Spring相关 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-oxm</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
        </dependency>


        <!-- web相关 -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>javax.servlet.jsp-api</artifactId>
            <version>2.3.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp.jstl</groupId>
            <artifactId>javax.servlet.jsp.jstl-api</artifactId>
            <version>1.2.1</version>
        </dependency>
        <dependency>
            <groupId>javax.ws.rs</groupId>
            <artifactId>javax.ws.rs-api</artifactId>
            <version>2.0</version>
        </dependency>
        <dependency>
            <groupId>javax.websocket</groupId>
            <artifactId>javax.websocket-api</artifactId>
            <version>1.0</version>
        </dependency>
        <dependency>
            <groupId>javax.annotation</groupId>
            <artifactId>javax.annotation-api</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>javax.transaction</groupId>
            <artifactId>javax.transaction-api</artifactId>
            <version>1.2</version>
        </dependency>


        <!-- 业务依赖包或者私有包 如有根据自己需要添加-->


        <!-- swagger2相关 非必须-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.7.0</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.7.0</version>
        </dependency>
    </dependencies>

    <!--构建打包相关-->
    <build>
        <finalName>${project.name}</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <!-- 配置文件 项目中有哪些就在此处新增行配置-->
                    <!--<packagingExcludes>**/jdbc.properties</packagingExcludes>-->
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <useSystemClassLoader>false</useSystemClassLoader>
                    <skip>true</skip>
                </configuration>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <!-- 若项目结构不一样,这两个路径也要记得改,不然某文件明明存在却报错找不到 -->
                <directory>src/main/java</directory>
                <includes>
                    <!-- *是通配的,也可以按需把路径范围控制的更小 -->
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
        </resources>
    </build>
</project>

pom结构说明解说如下

properties 定义全局变量的地方
parent 引入父依赖,类似java里面的extends关键字
repositories+pluginRepositories 配置远程仓库
dependencies 所需的依赖包
build 构建打包找谁来执行,需要用到哪些路径下的文件

maven运行流程
maven会根据pom文件拉取依赖包,根据群组id先是在我们本地仓库对应的路径去找,找不到就去远程仓库下载回来本地。远程仓库有中央仓库、其他仓库。下面这个是安装maven后配置文件里面的,它是所有pom的父pom,所有maven项目继承该配置。

<repositories>
    <repository>
      <id>central</id> <!-- 仓库的id,唯一不重复 (若重复则覆盖前者) -->
      <name>Central Repository</name> <!-- 仓库的名称 或者 描述 -->
      <url>https://repo.maven.apache.org/maven2</url> <!-- 仓库的地址 -->
      <layout>default</layout>
      <snapshots>
        <enabled>false</enabled> <!-- 禁止下载snapshots版本 -->
      </snapshots>
    </repository>
  </repositories>

上面只需稍微了解一下就行,下面需重点熟悉是个人配置。当某些依赖包存在于其他仓库、局域网仓库、私有仓库时。我就还需要配置这些非中央仓库告诉maven除了上面的中央仓库,你还可以去我提供的这些仓库里找。以阿里云仓库为例在pom文件中配置如下

<!-- 这里是仓库信息 -->
<repositories> 
    <repository>
        <id>aliyun</id>
        <url>https://maven.aliyun.com/repository/public</url>
        <releases>
            <enabled>true</enabled> <!-- 允许下载releases版本 -->
        </releases>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>
<!-- 这里是执行者信息 -->
<pluginRepositories> <!-- pluginRepositories配置了就按配置执行,省略了没配置就按本地默认的执行 -->
    <pluginRepository>
        <id>aliyun-plugin</id>
        <url>https://maven.aliyun.com/repository/public</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </pluginRepository>
</pluginRepositories>

另外一种方法是maven的setting.xml文件里面配置,找到profiles标签。定义一个id为local的profile,使用activeProfiles标签表示当前生效的profile是local这个配置。

<settings>
  ...
  <profiles>
    <profile> <!-- 若你有多个就配置多套 这里只配置了一个为例-->
      <id>local</id>
      <!-- 把上面的repositories 和pluginRepositories 复制到这里来粘贴-->
    </profile>
  </profiles>
  <activeProfiles>
    <activeProfile>local</activeProfile> <!-- 若你需同时使用多个仓库就配置多个 这里只配置了一个为例-->
  </activeProfiles>
  ...
</settings>

这两种配置方式优缺点如下,我认为第一种好一些,一劳永逸。而setting文件,我们一般都是去mirrors标签里面覆盖maven原有中央镜像以及添加其他镜像,极少去改profiles。

在项目中的pom中配置:pom会提交git/svn,这样新同事拉取代码直接能用你也不用给他交接setting.xml文件。一旦提交git了后续也不会无故去修改,稳定。
在setting.xml文件配置:是你本地全局范围的仓库配置,需要用哪个仓库时就切换到哪个,改一下配置即可。新项目不知道仓库或忘记切换或切换错了导致包拉取不下来,项目都跑不起来

parent标签

<parent>
   <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.1.RELEASE</version> <!-- 必须指定一个版本,不可省略-->
</parent>

这一段表示当前pom继承parent,parent里面的父pom包含了很多东西的(它也都是继承 来自spring-boot-dependencies)。父pom里面的properties标签下,定义了很多包的版本,属于定制套餐。我们只需要引入spring-boot-start-parent后很多其他依赖就不用在引用了,因为spring-boot-start-parent这个文件中的套餐将我们需要的所有依赖都准备好了。这个套餐里面具体有哪些依赖包,参照下图可去查看。
maven的pom文件
但假设我们不使用父pom来实现Spring boot,或者父pom里面的某个jar版本不是我想要的又如何替换呢。在当前pom里面添加如下

<dependencyManagement>
     <dependencies>
     	<!-- 情景一:不使用父pom的定制套餐,先添加这个依赖,然后根据自己需要再加一些你需要的依赖  -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>2.2.2.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <!-- 继续添加你项目中需要用到的依赖,毕竟没使用定制套餐了,啥都需要你自己动手 略 -->
        <!-- 另外当前pom里面的build标签内容就不能省略了,因为父pom里本身有build标签,现在不使用父pom了,build标签自然得你自己写 -->
        
        
        <!-- 情景二:不同版本可以在dependencyManagement中重写 -->
        <!-- 比如jpa这个我需要的1.5.5版本但父pom里并不是这个版本,这样就能用1.5.5进行覆盖 -->
		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
            <version>1.5.5.RELEASE</version>
        </dependency>
    </dependencies>
</dependencyManagement>

maven的pom文件
这种左边有蓝色圈圈的,说明父pom中已引入了,你无需再引入。除非你需要对这个依赖进行自定义(版本、作用范围等)并覆盖

jar查询下载工具
依赖包的名称,有哪些版本,可以通过这个网址去查询 https://mvnrepository.com/,它提供了官网地址下载jar,引入maven和grade文件中依赖的代码
maven的pom文件
或者通过阿里云地址 https://developer.aliyun.com/mvn/search
maven的pom文件文章来源地址https://www.toymoban.com/news/detail-475974.html

到了这里,关于maven的pom文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Maven】Maven 中 pom.xml 文件

    Maven 是一个项目管理工具,可以对 Java 项目进行构建和管理依赖。 本文,我们认识下 pom.xml 文件。POM(Project Object Model, 项目对象模型) 是 Maven 工程的基本工作单位,也是 Maven 的核心。其包含项目的基本信息,用于描述项目如何构建、声明项目依赖等。 POM 是 Project Object Mod

    2024年02月15日
    浏览(29)
  • maven的pom文件

    maven项目中会有pom文件, 当新建项目时候, 需要添加我们需要的依赖包。所以整理了一份比较常用的依赖包的pom,方便以后新建项目或者添加依赖包时copy且快捷。不需要的依赖可以删掉,避免首次远程拉取失败和缩小项目打包大小。 pom结构说明解说如下 properties 定义全局变

    2024年02月08日
    浏览(35)
  • 简介maven核心:pom项目对象模型

    Maven 意思是知识的积累者,最初是为了简化 Jakarta Turbine 项目中的构建过程。有几个项目,每个项目都有自己的 Ant 构建文件,它们都略有不同。JAR 被检入 CVS。我们想要一种标准的方式来构建项目,清楚地定义项目的组成,发布项目信息的简单方法,以及在多个项目之间共享

    2024年03月09日
    浏览(42)
  • Maven--pom.xml文件详解

    1.pom简介 pom指的是project object model,又叫项目对象模型。Maven的pom文件是一个XML文件,用于描述项目的各种属性、依赖和构建信息,包括项目的名称、版本、许可证、作者、描述、依赖关系、构建过程、插件等。总的来说,POM文件是Maven工程的基本工作单元,它包含了项目的所

    2024年01月19日
    浏览(35)
  • POM文件配置Maven仓库地址

    POM文件配置Maven仓库地址 - JavaShuo maven使用setting.xml配置文件配置仓库地址 - JavaShuo 在pom.xml文件中设置Maven本地存储库位置? -------------------------------------------------------------------------------------------------------------------- Maven的默认本地仓库在:${user.home}/.m2/repository; 如果需要自定义

    2024年02月16日
    浏览(36)
  • maven的pom.xml文件详解

    2024年02月12日
    浏览(37)
  • Maven聚合项目(微服务项目)创建流程,以及pom详解

    1、首先创建springboot项目作为父项目 只留下pom.xml 文件,删除src目录及其他无用文件  2、创建子项目 子项目可以是maven项目,也可以是springboot项目 3、父子项目关联  4、父项目中依赖管理   depedencyManagement标签介绍 在maven的聚合工程中,父模块的pom文件中,使用dependencyManag

    2024年02月11日
    浏览(29)
  • Maven项目提示Ignored pom.xml问题

    1 环境 (1)IDEA开发工具:2022.2.1 (2)JDK:Java17(Spring6要求JDK最低版本是Java17) (3)Spring:6.1.2 (4)Maven 3.8.8 2 问题描述 新创建一个Maven模块,和之前删除的创建失败的模块同名,此时创建好的模块的pom.xml文件有删除线,提示Ignored pom.xml,pom文件显示 pom.xml 。 3 原因分析

    2024年02月04日
    浏览(34)
  • Maven的pom文件引用以及下载失败

    背景:项目中使用到新版本的aspose-words组件,但是引用失败; pom.xml中引用,但是maven 仓库没有aspose-words 后续版本,所以需要在pom中配置 aspose-words的官网。 仍然不生效,错误入下: 解决办法:修改maven的配置文件,conf/setting.xml 文件中需要排除AsposeJavaAPI,也就是由   mirrorOf

    2024年01月23日
    浏览(28)
  • maven之pom.xml配置文件详解

    pom代表项目对象模型,它是Maven中工作的基本组成单位。它是一个XML文件,在项目的根目录中。pom包含的对象是使用maven来构建的,pom.xml文件包含了项目的各种配置信息。 创建一个POM之前,应该要先决定项目组(groupId),项目名(artifactId)和版本(version),因为这些属性在项目仓

    2023年04月09日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包