Maven项目内存储库不起作用

时间:2014-09-12 03:49:34

标签: maven jar repository pom.xml libraries

这是我的pom.xml文件:

<project ...>

    <repositories>
        <repository>
            <id>lib</id>
            <name>lib</name>
            <releases>
                <enabled>true</enabled>
                <checksumPolicy>ignore</checksumPolicy>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
            <url>file://${project.basedir}/src/lib</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>oracle.jdbc</groupId>
            <artifactId>ojdbc6</artifactId>
            <version>11.2.0.4</version>
        </dependency>
        ...
    <dependencies>
    ...
</project>

但&lt; dependency&gt;上显示错误tag:缺少工件oracle.jdbc:ojdbc6:jar:11.2.0.4

目录结构是这样的:

test-project/
  src/
    lib/
      oracle/
        jdbc/
          ojdbc6/
            11.2.0.4/
              ojdbc6-11.2.0.4.jar

pom.xml文件中是否缺少任何内容或目录结构错误?

3 个答案:

答案 0 :(得分:0)

这是Windows上的解决方案,但它非常有趣:

替换

file://${project.basedir}/src/lib

通过

file://${project.basedir}\src\lib

参考: 请参阅以下内容中的评论:http://blog.dub.podval.org/2010/01/maven-in-project-repository.html

答案 1 :(得分:0)

最好的解决方案是开始使用存储库管理器(Artifactory,Nexus,Archiva)并在那里安装oracle jdbc驱动程序,而不是将其用作依赖项。

如果您真的不喜欢使用存储库管理器,我可以推荐non-maven-jar-maven-plugin.

答案 2 :(得分:0)

搜索了几个小时后,最终发现answer对我有效。

  

您的settings.xml文件声明了一个包罗万象的镜像。这将对您的pom文件中的本地存储库声明生效。删除catch-all镜像,或尝试从镜像中排除项目存储库的存储库ID:

<mirror>*</mirror>替换为<mirror>*,!lib</mirror>

中的MAVEN/conf/settings.xml