如何使用maven uber pom与依赖关系?

我有一个简单的maven插件,而这又取决于父pom文件。 父pom文件有10个(第10个)第三方jar依赖项,这些依赖项已使用以下命令安装在本地repo中。

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作为插件依赖项。 有任何想法吗?


默认情况下,Maven将首先在本地存储库中搜索依赖项。 如果找不到,它会搜索您的全局/自定义存储库(默认情况下仅设置中央存储库)。 你在uberpom上运行mvn install吗? 如果是这样,请检查您的本地仓库中的路径是否正确。

我不确定你是否忘记适应你的例子,但是“uberpom”定义的com.foo.bar作为groupId,并且你的插件的用法有com.oracle.weblogic.test 。 这可能是一个错字。 我也假设你所有的第三方依赖都被正确安装(检查他们的pom)。

只是为了它,请检查<localRepository>是否已设置。 通常情况下,你不必设置它,但可以尝试一下。

我不是专家,但我希望它有帮助!


父POM中的groupId和父POM的引用中的groupId不匹配。 groupId,artifactId和version必须完全匹配,以便Maven找到父级。


尝试“mvn install -o”强制脱机模式。 可能会指出问题所在。

当你运行install-file命令时,你是否指定了生成pom并生成校验和?

手动检查你的Maven回购的罐子,看看他们是否正确安装。

链接地址: http://www.djcxy.com/p/29659.html

上一篇: How to use maven uber pom with dependencies?

下一篇: Including all the jars in a directory within the Java classpath