maven从pom内部运行maven安装

时间:2012-04-11 19:40:53

标签: java maven

我有一些第三方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(验证阶段)的复制命令在对依赖关系进行任何检查之前运行

2 个答案:

答案 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并获得使用它的所有好处,例如改进的构建性能,易于使用第三方库以及在内部共享工件的能力..