美文网首页springbootspring boot项目实战程序员
spring boot实战之本地jar包引用

spring boot实战之本地jar包引用

作者: 思与学 | 来源:发表于2017-10-17 18:20 被阅读257次

部分情况下无法通过maven仓库直接下载需要的jar包,只能讲jar包下载至本地来使用,spring boot框架内通过maven加载第三方jar包可以通过以下方式来实现(本地jar放在lib/目录下),项目会打包为jar包来运行。

1、添加maven依赖

<dependency>
    <groupId>org.ansj</groupId>
    <artifactId>ansj_seg</artifactId>
    <version>3.0</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/lib/ansj_seg-3.0.jar</systemPath>
</dependency>
  • scope system指明是本地jar包
  • systemPath指明本地jar包路径

经过以上配置,在eclipse内已可正常运行,但编译为jar包时会提示找不到相关的类,需要进行以下配置。

2、调整plugin参数

<plugins>
    <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
            <source>1.7</source>
            <target>1.7</target>
            <compilerArguments>
                <extdirs>${project.basedir}/lib</extdirs>
            </compilerArguments>
        </configuration>
    </plugin>
</plugins>
  • 重点是compilerArguments内的extdirs配置

3、调整resources配置

<resources>
<resource>
<directory>lib</directory>
<targetPath>BOOT-INF/lib/</targetPath>
<includes>
<include>*/.jar</include>
</includes>
</resource>

    <resource>
        <directory>${project.basedir}/src/main/resources</directory>
        <targetPath>BOOT-INF/classes/</targetPath>
    </resource>
</resources>
  • directory lib配置的作用是指定lib目录下的jar包作为资源文件,在打包时一起copy至classes是目录下
  • directory src/main/resources配置的作用是指明正常的java资源文件,不配置会被忽视

打包后的文件格式大概为:

BOOT-INF  
  -- lib  
     -- ansj_seg-3.0.jar  
  -- classess  
      -- application.properties  

相关文章

网友评论

  • f753ef329e8a:可以打包成功
    但是运行时读取不到.properties配置了

本文标题:spring boot实战之本地jar包引用

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