您的位置:首页 > 其它

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

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

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

<span class="pln" style="font-family: Arial, 宋体;"> </span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"><plugin></span><span class="pln" style="font-family: Arial, 宋体;">
            </span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"><groupId></span><span class="pln" style="font-family: Arial, 宋体;">org.apache.maven.plugins</span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"></groupId></span><span class="pln" style="font-family: Arial, 宋体;">
            </span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"><artifactId></span><span class="pln" style="font-family: Arial, 宋体;">maven-dependency-plugin</span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"></artifactId></span><span class="pln" style="font-family: Arial, 宋体;">
            </span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"><executions></span><span class="pln" style="font-family: Arial, 宋体;">
                </span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"><execution></span><span class="pln" style="font-family: Arial, 宋体;">
                    </span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"><id></span><span class="pln" style="font-family: Arial, 宋体;">copy-dependencies</span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"></id></span><span class="pln" style="font-family: Arial, 宋体;">
                    </span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"><phase></span><span class="pln" style="font-family: Arial, 宋体;">prepare-package</span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"></phase></span><span class="pln" style="font-family: Arial, 宋体;">
                    </span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"><goals></span><span class="pln" style="font-family: Arial, 宋体;">
                        </span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"><goal></span><span class="pln" style="font-family: Arial, 宋体;">copy-dependencies</span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"></goal></span><span class="pln" style="font-family: Arial, 宋体;">
                    </span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"></goals></span><span class="pln" style="font-family: Arial, 宋体;">
                    </span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"><configuration></span><span class="pln" style="font-family: Arial, 宋体;">
                        </span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"><outputDirectory></span><span class="pln" style="font-family: Arial, 宋体;">${project.build.directory}/lib</span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"></outputDirectory></span><span class="pln" style="font-family: Arial, 宋体;">
                        </span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"><overWriteReleases></span><span class="pln" style="font-family: Arial, 宋体;">false</span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"></overWriteReleases></span><span class="pln" style="font-family: Arial, 宋体;">
                        </span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"><overWriteSnapshots></span><span class="pln" style="font-family: Arial, 宋体;">false</span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"></overWriteSnapshots></span><span class="pln" style="font-family: Arial, 宋体;">
                        </span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"><overWriteIfNewer></span><span class="pln" style="font-family: Arial, 宋体;">true</span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"></overWriteIfNewer></span><span class="pln" style="font-family: Arial, 宋体;">
                    </span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"></configuration></span><span class="pln" style="font-family: Arial, 宋体;">
                </span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"></execution></span><span class="pln" style="font-family: Arial, 宋体;">
            </span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"></executions></span><span class="pln" style="font-family: Arial, 宋体;">
        </span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"></plugin></span><span class="pln" style="font-family: Arial, 宋体;">
        </span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"><plugin></span><span class="pln" style="font-family: Arial, 宋体;">
            </span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"><groupId></span><span class="pln" style="font-family: Arial, 宋体;">org.apache.maven.plugins</span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"></groupId></span><span class="pln" style="font-family: Arial, 宋体;">
            </span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"><artifactId></span><span class="pln" style="font-family: Arial, 宋体;">maven-jar-plugin</span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"></artifactId></span><span class="pln" style="font-family: Arial, 宋体;">
            </span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"><configuration></span><span class="pln" style="font-family: Arial, 宋体;">
                </span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"><archive></span><span class="pln" style="font-family: Arial, 宋体;">
                    </span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"><manifest></span><span class="pln" style="font-family: Arial, 宋体;">
                        </span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"><addClasspath></span><span class="pln" style="font-family: Arial, 宋体;">true</span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"></addClasspath></span><span class="pln" style="font-family: Arial, 宋体;">
                        </span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"><classpathPrefix></span><span class="pln" style="font-family: Arial, 宋体;">lib/</span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"></classpathPrefix></span><span class="pln" style="font-family: Arial, 宋体;">
                        </span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"><mainClass></span><span class="pln" style="font-family: Arial, 宋体;">theMainClass</span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"></mainClass></span><span class="pln" style="font-family: Arial, 宋体;">
                    </span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"></manifest></span><span class="pln" style="font-family: Arial, 宋体;">
                </span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"></archive></span><span class="pln" style="font-family: Arial, 宋体;">
            </span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"></configuration></span><span class="pln" style="font-family: Arial, 宋体;">
        </span><span class="tag" style="font-family: Arial, 宋体; color: rgb(128, 0, 0);"></plugin></span>
上面配置中我们使用了maven-dependency-plugin插件,然后执行了(execution节点)copy-dependencies操作。我们指定的输出目录是:${project.build.directory}/lib,这里的${project.build.directory}就是我们通常看到的target目录,也就是要把jar复制到target目录下的lib目录下。

位置自己根据实际情况而定。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: