目錄
maven有兩種引用第三方jar包的形式:一種是scope爲system,直接指定jar路徑引用;另一種是先安裝到本地倉庫再引用。
一、指定路徑引用
要想直接指定系統路徑引用,需要把scope改成system,然後再添加systemPath標籤指定需要引用的jar包路徑,如果jar是在項目路徑的文件夾中的,可以使用${ project.basedir }來代替項目根目錄路徑。引用例子如下所示:
<dependency>
<groupId>com.smartbi</groupId>
<artifactId>smartbi-SDK</artifactId>
<version>9.3</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/lib/smartbi-SDK.jar</systemPath>
</dependency>
如果是將項目打包成war包,則需要在配置編譯插件時,設置includeSystemScope爲true,並且把第三方jar包的文件夾設置成資源文件夾。pom.xml中的build標籤下的配置例子如下所示:
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<!-- 設置編譯版本 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/lib</directory> <!—第三方jar包存放路徑-->
<targetPath>WEB-INF/lib</targetPath> <!—編譯打包後的目標路徑-->
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</resources>
</build>
如果是將項目打包成可運行的jar包,或者是maven多模塊項目中,B模塊需要引用第三方jar包,A模塊引用B模塊的情況,使用上面的方法在打包後運行會找不到第三方jar包的類和方法。所以這種情況建議使用下面的先安裝再引用的方法。
二、先安裝再引用
先把第三方的jar包安裝到本地倉庫,可以使用mvn命令安裝,也可以在pom.xml文件中配置插件安裝。
mvn命令如下:
mvn install:install-file -Dfile=D:/smartbi-SDK.jar -DgroupId=com.smartbi -DartifactId= smartbi-SDK -Dversion=9.3 -Dpackaging=jar
pom.xml文件中的插件配置如下:
<!-- 安裝第三方jar包 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<executions>
<execution>
<id>install-smartbi-SDK</id>
<phase>clean</phase> <!—在clean階段進行安裝-->
<configuration>
<file>${project.basedir}/src/main/lib/smartbi-SDK.jar</file>
<repositoryLayout>default</repositoryLayout>
<groupId>com.smartbi</groupId>
<artifactId>smartbi-SDK</artifactId>
<version>9.3</version>
<packaging>jar</packaging>
<generatePom>true</generatePom>
</configuration>
<goals>
<goal>install-file</goal>
</goals>
</execution>
</executions>
</plugin>
安裝完之後,和其它jar包一樣,直接在pom.xml文件中引用即可。引用例子如下所示:
<dependency>
<groupId>com.smartbi</groupId>
<artifactId>smartbi-SDK</artifactId>
<version>9.3</version>
</dependency>