Spring Boot学习--使用本地/第三方jar

来源:互联网 发布:java棋牌游戏源码 编辑:程序博客网 时间:2024/06/18 15:20

如果想使用的jar在maven repository中没有,或者是自己开发的jar想要在springboot项目中被使用,就需要一些特殊的手段。

一般来说最简单最普遍的方式就是将要使用的jar包打到自己的maven仓库中,语法格式如下:

mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id>     -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>

如要使用的jar名为mytest.jar:

mvn install:install-file -Dfile=mytest.jar -DgroupId=com.test -DartifactId=my-test -Dversion=1.0 -Dpackaging=jar

在pom中的引用格式为:

<dependency>    <groupId>com.test</groupId>    <artifactId>my-test</artifactId>    <version>1.0</version></dependency>

这种打包方式可以解决本地开发问题,但是如果遇到合作开发,代码提交之后其他开发人员就要在他们本地执行同样指令,或者将自己的maven repository直接拷贝给对方。

现在我们来看另外一种,在项目中直接新建lib文件夹,pom中引用lib下的jar:
这里写图片描述

这里lib是跟src同级目录的,具体位置可以自己指定。

将mytest.jar拷贝到lib目录下。

现在来看pom中的引用:

<dependency>    <groupId>com.test</groupId>    <artifactId>my-test</artifactId>    <version>1.0</version>    <scope>system</scope>    <systemPath>${project.basedir}/lib/mytest.jar</systemPath></dependency>

这里的scope设置为system,systemPath指定引用jar的位置。

这里如果只是在本地ide中运行就OK了,但是如果想要打包成jar运行就会发现,lib下的jar包没有被打包进项目的jar中。

这时就要对maven的打包工具进行修改,在网上搜了好久最后整合出以下信息,直接给出代码:

<build>        <plugins>            <plugin>                <groupId>org.springframework.boot</groupId>                <artifactId>spring-boot-maven-plugin</artifactId>            </plugin>            <plugin>                <artifactId>maven-compiler-plugin</artifactId>                <configuration>                    <source>1.8</source>                    <target>1.8</target>                    <encoding>UTF-8</encoding>                    <compilerArguments>                        <extdirs>${project.basedir}/lib</extdirs>                    </compilerArguments>                </configuration>            </plugin>        </plugins>        <resources>            <resource>                <directory>${basedir}/src/main/resources</directory>                <filtering>true</filtering>                <includes>                    <include>**/application*.properties</include>                </includes>            </resource>            <resource>                <directory>${basedir}/src/main/resources</directory>                <excludes>                    <exclude>**/application*.properties</exclude>                </excludes>            </resource>            <resource>                <directory>lib</directory>                <targetPath>BOOT-INF/lib/</targetPath>                <includes>                    <include>**/*.jar</include>                </includes>            </resource>        </resources>    </build>

spring-boot-maven-plugin是官方提供的默认打包工具,但是在打包本地jar的时候就不太方便,需要借助maven-compiler-plugin。

source和target中的1.8指的是jdk的版本,这个一定要设置好。

下边的resource标签中的信息是自己在打包的时候要被打包的资源文件,这里我们主要用到的是最下边的这个lib配置,将会被打包进jar中的BOOT-INF/lib/目录下。

上边resources目录下的是为了防止自己的资源文件在打包的时候丢失。

这样打包之后所有需要的信息都会被包含在jar中。