在我們的開發(fā)中,通過會依賴第三方的jar包,而這些jar包由于還處于測試或開發(fā)階段,并沒有放到maven庫中,這個時候,如果我們還按照原來spring boot的方式打包的話,第三方jar包是打不進來的,所以很多時候,我們在本地測試,開發(fā)沒問題,一部署到服務器上,就報ClassNotFound異常。示例如下:
第三方jar包的引用方式:
- <dependency>
- <groupId>com.chhliu</groupId>
- <artifactId>chhliu-sender</artifactId>
- <version>1.0.2-tst</version>
- <scope>system</scope>
- <systemPath>${project.basedir}/lib/chhliu-sender-1.0.2-tst.jar</systemPath>// 第三方jar包放在工程目錄的lib目錄下
- </dependency>
這個時候,我們要在pom文件中的build標簽下加上如下的配置:
- <build>
- <plugins>
- <plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- </plugin>
- </plugins>
- <resources>
- <resource>// 將lib目錄下的jar包拷貝到BOOT-INF/lib/目錄下
- <directory>${project.basedir}/lib</directory>
- <targetPath>BOOT-INF/lib/</targetPath>
- <includes>
- <include>**/*.jar</include>
- </includes>
- </resource>
- <resource>// 如果不加上這個配置,不然src/main/resource目錄下的配置文件就不會打到jar包下去了
- <directory>src/main/resources</directory>
- <targetPath>BOOT-INF/classes/</targetPath>
- </resource>
- </resources>
- </build>
這樣的話,我們再使用mvn clean package的話,就會將lib目錄下的jar包打到指定的目錄中了。
如果,我們的項目要打成War包,那么我們需要修改成如下的配置文件。
- <!--設置maven-war-plugins插件,否則外部依賴無法打進war包-->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-war-plugin</artifactId>
- <configuration>
- <webResources>
- <resource>
- <directory><span style="font-family: Arial, Helvetica, sans-serif;">${project.basedir}/lib</span><span style="font-family: Arial, Helvetica, sans-serif;"></directory></span>
- <targetPath>WEB-INF/lib/</targetPath>
- <includes>
- <include>**/*.jar</include>
- </includes>
- </resource>
- </webResources>
- </configuration>
- </plugin>
下面,大家可以動手試下了。
本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請
點擊舉報。