Maven的中心仓库http://mvnrepository.com/是非常强大的,很多的jar包都可以从其中找到,但是确实存在着无法从中心仓库找到的情况,一种可能是来自第三方的jar包,没有存入到Maven的中心仓库;另一种可能就是自己或者自己的团队开发的Jar包,就是本地一个jar文件,但是需要使用maven来进行管理。
那么,针对这两种情况,如何在项目中使用呢?
假设我们需要使用:org.uswframework.gencode-1.4.jar,这个Jar包,其实就是一个自己团队开发出来的jar包,肯定在Maven的中心仓库是找不到的,怎么办呢?
(1)将该jar包,放在项目的lib目录,或者其他的目录。
(2)在pom.xml里面增加该jar的引用,例如:
<dependency>
<groupId>org.uswframework</groupId>
<artifactId>gencode</artifactId>
<version>1.4</version>
<scope>system</scope>
<systemPath>${basedir}/lib/org.uswframework.gencode-1.4.jar </systemPath>
</dependency>
这样就可以在项目中使用org.uswframework.gencode-1.4.jar了!
这里有个问题,在项目打包成war的时候,我们当然希望将这个jar包包含在/WEB-INF/lib目录下,那么如何将org.uswframework.gencode-1.4.jar包含在内呢?
其实也很简单,就在pom.xml里面做个配置即可,例如:
<build>
<finalName>dynobike</finalName>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<warName>dynobike</warName>
<webResources>
<resource>
<directory>lib/</directory>
<targetPath>WEB-INF/lib</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
当然在include里面,也是可以打包其他的文件的,诸如xml,properties等配置文件。
打包以后,发现org.uswframework.gencode-1.4.jar果然已经在war包里面。
其中,maven-war-plugin这个是maven的打包插件,可以让其指定在打包时执行一些自定义的操作。这里执行的操作就是将源lib目录下的*.jar文件包含到目标目录下(由targetPath来指定)。