为什么我的maven build不能从我的存储库中获取jar?

时间:2011-03-31 17:08:03

标签: java build jar maven

我正在尝试为供应商和我编写的类中的一些jar文件设置Maven存储库。

它适用于我放入的oracle jar文件,但不适用于我自己的jar。

我设置了一个apache webserver来充当mvn存储库。我设置目录以显示文件索引(选项索引)。

以下是我的根pom.xml

中的代码段
  <repositories>
    <repository>
      <id>mycompany-external-repo</id>
      <url>http://svn.mycompany.com/mvn</url>
    </repository>
  </repositories>

以下是一个项目带有依赖项的pom.xml的片段

    <dependency>
        <groupId>com.oracle.aq</groupId>
        <artifactId>aqapi</artifactId>
        <version>10.2.0.1.0</version>
    </dependency>

    <dependency>
        <groupId>com.mydomain</groupId>
        <artifactId>middleware</artifactId> 
        <version>1.0</version>
    </dependency>       

mvn存储库的URL如下:

http://svn.mycompany.com/mvn/com/oracle/aq/aqapi/10.2.0.1.0/aqapi-10.2.0.1.0.jar    

http://svn.mycompany.com/mvn/com/mydomain/middleware/1.0/middleware-1.0.jar

我的jar文件出错了什么?

以下是mvn install的结果

[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building core 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading: http://svn.mycompany.com/mvn/com/mydomain/middleware/1.0/middleware-1.0.pom
Downloading: http://repo1.maven.org/maven2/com/mydomain/middleware/1.0/middleware-1.0.pom
[WARNING] The POM for com.mydomain:middleware:jar:1.0 is missing, no dependency information available

2 个答案:

答案 0 :(得分:0)

Maven首先在repo的预期位置查找pom,然后才会查找任何其他工件,没有它,它无法获取它们,因为它不知道如何处理工件的任何依赖项。

这就是使用Artifactory之类的东西的原因,它具有全功能的开源版本。 Artifactory将在您部署工件时自动为您生成pom信息,并知道如何管理部署尝试。而且,它只会为您的工件提供一个站点。

答案 1 :(得分:0)

你必须设置一个镜子,我假设你正在使用maven 2或3:

<mirror>
      <id>server_id</id>
      <name>Maven Repository running in your company</name>
      <url>http://svn.mycompany.com/mvn/</url>
      <mirrorOf>*</mirrorOf>
</mirror>