在我们使用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>
```