我正在尝试为供应商和我编写的类中的一些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
答案 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>