Maven的非web項目在執行時需要引用很多jar包,這時候通常的做法是將這些jar包統一放到lib目錄中,maven的dependency插件可以幫我們做這件事情。
我們需要在pom文件的build節點的plugins節點內添加一個plugin,plugin內容如下:
<plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>copy-dependencies</id> <phase>prepare-package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/lib</outputDirectory> <overWriteReleases>false</overWriteReleases> <overWriteSnapshots>false</overWriteSnapshots> <overWriteIfNewer>true</overWriteIfNewer> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> <mainClass>theMainClass</mainClass> </manifest> </archive> </configuration> </plugin> </plugin>
上面配置中我們使用了maven-dependency-plugin插件,然后執行了(execution節點)copy-dependencies操作。我們指定的輸出目錄是:${project.build.directory}/lib,這里的${project.build.directory}就是我們通常看到的target目錄,也就是要把jar復制到target目錄下的lib目錄下。