首先要下載所需jar包到本地,然后復(fù)制下載好的jar到項(xiàng)目中,
然后修改項(xiàng)目的pom文件,將項(xiàng)目里的jar包引入到maven
<dependency>
<groupId>slf4j.api</groupId>
<artifactId>slf4japi</artifactId>
<version>2.0</version>
<scope>system</scope>
<systemPath>${project.basedir}\src\main\resources\lib\slf4j-api-1.7.25.jar</systemPath>
</dependency>
需要注意的是,version一定要填寫(xiě)不然會(huì)報(bào)錯(cuò)
scope=system表示此依賴是來(lái)自外部jar,而不是maven倉(cāng)庫(kù)。當(dāng)scope設(shè)置為system時(shí),systemPath屬性才會(huì)生效,systemPath為一個(gè)物理文件路徑,來(lái)指定依賴的jar其物理磁盤的位置。
${project.basedir}代表根目錄。
Jar執(zhí)行解決方案:
將jar引入好之后,要將includeSystemScope參數(shù)設(shè)置為true不然打包時(shí)會(huì)報(bào)錯(cuò)
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope><!--當(dāng)scope為system時(shí)增加配置-->
</configuration>
</plugin>
?說(shuō)明:重要的是includeSystemScope為true。
總結(jié)
(1)如何添加外部jar包:指定score=system,并且配置sysemPath。
(2)如何打包外部jar包:使用spring-boot-maven-plugin,并且配置屬性includeSystemScope為true。
War執(zhí)行解決方案:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>${project.basedir}/src/main/resources/lib</directory>
<targetPath>WEB-INF/lib/</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
directory: lib包所在路徑
targetPath:編譯后lib包中jar位置
原因:在項(xiàng)目中引入本地包在打包的時(shí)候會(huì)把本地引入的jar打包到lib-provided文件夾中,但tomcat只掃描lib中的jar所以在請(qǐng)求接口時(shí)會(huì)發(fā)生NoClassDefFoundError錯(cuò)誤,所以要在編譯時(shí)指定本地jar問(wèn)價(jià)的位置
將本地項(xiàng)目中新增的jar包,上傳到git
需要修改項(xiàng)目中.gitignore文件,刪除*.lib與*.jar文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-707832.html
刪除文件中*.lib與*.jar之后即可上傳jar到git,不然會(huì)把lib文件夾與jar包過(guò)濾掉
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-707832.html
到了這里,關(guān)于SpringBoot添加外部jar包及打包(親測(cè)有效)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!