1. 程式人生 > >Maven中新增本地Jar包,並在打包時新增到war中

Maven中新增本地Jar包,並在打包時新增到war中

在我們使用Maven進行依賴管理時,有些jar包沒有提供maven倉庫的repo,我們可以釋出到本地倉庫,也可以直接從本地進行新增,
如下圖這種方式


```
 <dependency>
    <groupId>com.youzan</groupId>
    <artifactId>NSQ-Client</artifactId>
    <scope>system</scope>
    <version>2.4.2.2-os-RELEASE</version>
    <systemPath>${project.basedir}/libs/NSQ-Client-2.4.2.2-os-RELEASE.jar</systemPath>
</dependency>
```

<scope>system</scope>
scope的類別預設是compile。compile表示被依賴專案需要參與當前專案的編譯,測試和執行,打包的時候通常需要包含進去。

其中system類別預設打包的時候不會包含進去,並且依賴項是從本地系統中拿而不會從maven倉庫下載,需要配合systemPath一起使用。

因此為了將本地依賴打入war包需要在pom檔案裡面新增如下配置


```xml
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
        <execution>
            <id>copy-dependencies</id>
            <phase>compile</phase>
            <goals>
                <goal>copy-dependencies</goal>
            </goals>
            <configuration>
                <outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/lib</outputDirectory>
                <includeScope>system</includeScope>
            </configuration>
        </execution>
    </executions>
</plugin>

```