我有一个简单的maven插件,而这又取决于父pom文件。父pom文件有10个(第10个)第三方jar依赖项,这些依赖项已使用以下命令安装在本地repo中。如何使用maven uber pom与依赖关系?
mvn install:install-file -Dfile=foo.jar -DgroupId=com.foo.bar -DartifactId=foo1.jar -Dversion=1.1.0.0 -Dpackaging=jar
同样,我已经安装了所有其他9罐到我当地的回购。这是uber pom.xml文件。
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.foo.bar</groupId>
<artifactId>maven-uber-pom</artifactId>
<packaging>pom</packaging>
<version>1.1.0.0</version>
<name>maven-uber-pom</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>com.foo.bar</groupId>
<artifactId>foo1.jar</artifactId>
<version>1.0.0.0</version>
</dependency>
<dependency>
<groupId>com.foo.bar</groupId>
<artifactId>foo2.jar</artifactId>
<version>1.0.0.0</version>
</dependency>
<dependency>
<groupId>com.foo.bar</groupId>
<artifactId>foo3.jar</artifactId>
<version>1.0.0.0</version>
</dependency>
<dependency>
<groupId>com.foo.bar</groupId>
<artifactId>foo4.jar</artifactId>
<version>1.0.0.0</version>
</dependency>
:
:
</dependencies>
我试图通过引用在我的插件的pom.xml文件,这个超级POM如下:
<project>
<parent>
<groupId>com.foo.bar</groupId>
<artifactId>maven-uber-pom</artifactId>
<version>1.1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.foo.bar</groupId>
<artifactId>foo-maven-plugin</artifactId>
<packaging>maven-plugin</packaging>
<version>1.1.0.0</version>
<name>foo bar plugin</name>
<url>http://maven.apache.org</url>
</project>
这之后我尝试
安装使用pom.xml文件我的插件mvn install <command>
Maven尝试从中央仓库http://repo1.maven.org/maven2下载第三方工件依赖关系,随后失败。因为在中央回购中没有可以找到这种协调的人为因素。
我也曾尝试使用超级pom作为插件依赖项,因为我很绝望。有任何想法吗?
如果我看上去正确,你已经安装了foo.jar,但是不要在你的父pom中引用这个工件,只有foo1.jar,foo2.jar等等。此外,你已经安装了mavenn-uber-pom,通过mvn安装在你的本地储存库?如果你有第三方的jar文件,那么我建议你特别使用版本库管理器,这可能在maven central中不可用。 – khmarbaise
谢谢你指出我。这是一个错字,编辑了这个。实际上我已经安装了maven install的所有jar:install-file到我的本地仓库。 – JourneyMan
'mvn install'是否在父POM项目上运行?如果没有,那么它不会被发现。 –