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

如果想使用的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中。

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读