maven如何将项目引用的所有jar包复制到lib文件夹内

时间:2022-07-11 09:10:49

Maven的非web项目在执行时需要引用很多jar包,这时候通常的做法是将这些jar包统一放到lib目录中,maven的dependency插件可以帮我们做这件事情。

我们需要在pom文件的build节点的plugins节点内添加一个plugin,plugin内容如下:

 <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>

上面配置中我们使用了maven-dependency-plugin插件,然后执行了(execution节点)copy-dependencies操作。我们指定的输出目录是:${project.build.directory}/lib,这里的${project.build.directory}就是我们通常看到的target目录,也就是要把jar复制到target目录下的lib目录下。