pom文件简介

使用pom文件管理第三方jar包

创建了一个maven的web项目之后,会生成一个pom.xml的文件,开发者可以通过这个文件的配置来使用maven自动下载第三方jar包,下面我们以fastjson为例,打开pom.xml文件,在dependencies标签中添加下面内容:

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.44</version>
</dependency>

点击保存,此时maven会自动下载fastjson的相关jar包,这样以后当我们想要更新fastjson的版本号的时候,就可以修改这个pom文件中相应的version即可。

你可以到你本地的maven仓库中查看,就是之前说过的在${user.home}/.m2/repository目录下的com\alibaba\fastjson\1.2.44目录中,可以看到fastjson-1.2.44.jar,这个就是maven自动下载的并且已经将其加入到项目依赖中。

创建一个类,里面编写下面代码,会将fastjson导入:

String jsonString = JSON.toJSONString(new Object());

pom.xml文件

这里面maven是根据dependency中的坐标来搜索并自动下载相关jar包的:

groupId:当前组织机构的名称,通常使用域名倒写的方式
artifactId:实际项目名称
version:当前项目的当前版本

这三个内容有时被称为gav。通过上面三个内容,就可以定位到具体的jar包,也就是说,开发者只需要配置以上三个内容,maven就能够自动下载你需要的jar包了。
那上面这些内容去哪里查找呢?

通常那些第三方库的官网都会写有这个dependency,我们直接拷贝到自己的pom.xml文件中即可。

除此之外,我们还可以去maven中央仓库查找:http://mvnrepository.com

这里面一般会有第三方jar包的dependency。

Maven仓库

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

  • 本地仓库就是在开发者本地默认的/.m2/repository路径中,这个是本地仓库,maven会将下载的jar包存放到这个位置里面,本地仓库的位置可以通过setting.xml文件进行修改。
  • 远程仓库
    • 中央仓库中央仓库地址:http://repo1.maven.org/maven2
      这些第三方jar包通常都会存放到这个中央仓库中,maven在下载jar包的时候默认会从这个中央仓库中进行下载,但是这个地址是在国外,在国内下载的时候,速度会比较慢,所以我们通常会配置国内的阿里云镜像仓库。
    • 私服有些开发人员会在公司的内网中搭建一个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> 

之后保存,当你再次使用maven下载jar包的时候,可以在eclipse或IDEA的控制台中看到会从阿里云提供的这个地址进行下载。速度要比从中央仓库快。

maven仓库

maven插件

当你创建好一个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>
        <!-- 编译插件,指定编译用的的jdk版本 -->
        <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>

添加之后,工程就的jdk版本号就变成11了,如果要使用jdk8的话,将11修改为1.8即可。