我有一个简单的maven插件,而后者依赖于父pom文件。父pom文件有十(10个)第三方jar依赖项,它们已使用以下命令安装在我的本地存储库中。
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下载第三方工件依赖项,然后失败。因为在中央仓库中没有可以找到这种坐标的工件。
我也尝试过使用uber-pom作为插件依赖,因为我很绝望。有什么想法吗?
答案 0 :(得分:0)
默认情况下,Maven将首先在本地存储库中搜索依赖项。如果找不到,它将搜索您的全局/自定义存储库(默认情况下,仅设置中央存储库)。你在uberpom上运行mvn install
了吗?如果是这样,请检查本地仓库中的路径是否正确。
我不确定您是否忘记将此修改为您的示例,但“uberpom”定义的com.foo.bar
为groupId,插件上的用法为com.oracle.weblogic.test
。这可能是一个错字。我还假设所有第三方依赖项都已正确安装(请检查它们的pom)。
只是为了它,检查您的settings.xml中是否设置了<localRepository>
。通常你不必设置它,但要试一试。
我不是专家,但我希望它有所帮助!
答案 1 :(得分:0)
父POM中的groupId与父POM的引用中的groupId不匹配。 groupId,artifactId和version必须完全匹配,以便Maven找到父级。
答案 2 :(得分:0)
尝试“mvn install -o”强制离线模式。 out可能会指出问题所在。
运行install-file命令时,是否指定了生成pom并生成校验和?
手动检查您的maven仓库以查看它们是否正确安装。