我必须从远程位置解压一些依赖项,然后在本地安装它们。
我成功地获得了它们(使用antrun插件)并安装了它们(使用安装插件)
但是,如果我将它们定义为依赖项(<dependency>..</dependency>
),maven首先尝试解决它们,然后,如果成功,则继续运行并安装。
我还尝试了build-helper-plugin和它的附加工件,但它什么也不做(它甚至不会将工件添加到最终的war文件中)
那么,如何在maven尝试解析依赖关系之前运行我的执行呢?
发布于 2011-05-10 23:40:50
您应该考虑运行诸如Archiva之类的工件存储库管理器,然后您可以将它们加载到其中,并在~/.m2/settings.xml
文件中添加Archiva服务器,而不必担心手动执行本地安装,也就是说,假设工件还没有在远程存储库中。如果您的“远程位置”是Maven存储库,Archiva也可以透明地代理该存储库。
发布于 2013-09-23 18:36:45
您可以在依赖项中尝试system
作用域并添加systemPath
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/myhackedjunit-4.0.jar</systemPath>
</dependency>
system
作用域与provided
类似,不同之处在于您必须显式提供包含它的JAR。工件总是可用的,并且不会在存储库中查找。
仅当依赖范围为system时,才使用systemPath
。路径必须是绝对路径。由于假设之前安装了系统范围依赖项,因此Maven将不检查项目的存储库,而是检查以确保文件存在。
https://stackoverflow.com/questions/5951999
复制相似问题