我有一些第三方jar不在存储库中,我需要在构建时安装。我正在尝试使用ant插件将生成的jar和pom从我的projects / lib文件夹复制到本地存储库
我的src / main / lib目录包含以下文件夹结构com / oracle / ojdbc14 / 10.2 / ojdbc.jar,ojdbc.pom
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<copy todir="${settings.localRepository}" >
<fileset dir="${basedir}/src/main/lib/" includes="**"/>
</copy>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
但是当我运行mvn install时,它会失败并显示以下msg
Failure to find com.oracle:ojdbc14:jar:10.2.0.3.0
为什么来自ant(验证阶段)的复制命令在对依赖关系进行任何检查之前运行
答案 0 :(得分:3)
抱歉,但这完全很糟糕。如果您真的无法将此第三方内容部署到某种内部或私有Maven回购中,那么迄今为止我发现这样做的最好方法是使用install:install-file
目标与所有这些罐子。我们为此创建了2个shell脚本(用于Windows和Linux),并由bootstrap
目录中的SCM共享它们(或者像这样)。请注意,每个新开发人员必须执行此操作一次,因为这些工件随后可在本地Maven仓库中解析。
请查看此处了解有关install:install-file
目标的详细信息:http://maven.apache.org/plugins/maven-install-plugin/install-file-mojo.html
答案 1 :(得分:3)
获取存储库管理器并在那里安装工件。其他一切都是丑陋的黑客,比安装和使用存储库管理器更具侵略性和麻烦。查看Nexus,Artifactory或Archiva并获得使用它的所有好处,例如改进的构建性能,易于使用第三方库以及在内部共享工件的能力..