2017-03-16 158 views
0

我已经使用maven clean build从一些X maven项目生成jar(以及带有依赖关系的jar)。以下jar被添加到我的本地maven回购。向pom.xml添加自定义jar(依赖项)依赖项

    组织效用
  • 0.0.1-SNAPSHOT
    • _remote.repositories
    • Maven的元数据的地方
    • 组织型多功能0.0.1-SNAPSHOT.jar
    • org-utility-0.0.1-SNAPSHOT.pom
    • org-utility-0.0.1 -snapshot-jar -with-dependencies.jar
  • Maven的元数据的地方

所以,我能够检索罐子 “检索组织型多功能0.0.1-SNAPSHOT.jar” 到另一个Maven项目 'Y' 的依赖。下面是我在pom.xml中添加的代码,它工作正常。

<dependency> 
     <groupId>com.org.utils</groupId> 
     <artifactId>org-utility</artifactId> 
     <version>0.0.1-SNAPSHOT</version> 
    </dependency> 

但在这里,我的问题是,如何检索这些罐子 “组织型多功能0.0.1-SNAPSHOT-JAR-与-dependencies.jar” 到同一个Maven项目 'Y' 作为depenency。

我在pom.xml中使用了下面的代码,并且在eclipse霓虹灯IDE中读取了失踪和无法读取工件等错误。

<dependency> 
     <groupId>com.org.utils</groupId> 
     <artifactId>org-utility</artifactId> 
     <version>0.0.1-SNAPSHOT-jar-with-dependencies</version> 
    </dependency> 

此外,我看到新的文件夹得到创建下maven回购如下。

    组织效用
  • 0.0.1-SNAPSHOT-JAR-与依赖性
    • 组织型多功能0.0.1-SNAPSHOT-JAR-与-dependencies.pom.lastUpdated

文本文件中的组织,公用事业0.0.1-SNAPSHOT-JAR-与-dependencies.pom.lastUpdated是如下

注意:这是一个以太网内部实现文件,其格式可以在没有提前通知的情况下更改为 。 Thu Mar 16 19:58:17 IST 2017 @ default-internal-http:// localhost:3001/repository/internal/.lastUpdated = 1489674496370 https://repo.maven.apache.org/maven2/.lastUpdated= 1489674497497 http:// localhost:3001/repository/internal/.error =无法传输 工件 com.org.utils:org-utility:pom:0.0.1-SNAPSHOT-jar -with-dependencies from/to内部(HTTP://本地主机:3001 /库/内部/): 连接被拒绝:连接 https://repo.maven.apache.org/maven2/.error=

请帮我从这个问题。 在此先感谢。

+1

打造为什么你想要这个罐子?参考“正常”的jar和所有其他依赖关系将被添加到您的新项目 – Jens

回答

0

如果你真的想引用这个罐子,你应该使用

<dependency> 
    <groupId>com.org.utils</groupId> 
    <artifactId>org-utility</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <classifier>jar-with-dependencies</classifier> 
</dependency> 

通常,你不想引用这个罐子,因为如果你搭配它,它会搞砸了Maven的依赖机制与其他依赖关系。另一方面,如果您使用没有依赖项的jar,Maven将为您执行依赖项解析。

补充说明:要覆盖非解决“LASTUPDATED”的文件,开始你的Maven与-u

+0

非常感谢! @JF Meier,添加分类器解决了我的问题,但是如果我想使用普通的jar本身,那么是否可以请你解释依赖解析的步骤(比如我们如何将所有其他依赖项添加到新项目中),因为有很多的其他依赖项被用在X项目中,我想在Y项目中使用它,而不是在Y的POM中再次添加所有依赖项,以及在jar中生成的自定义类。 –

+0

如果X对A有依赖关系,并且声明了对X的依赖关系,那么您也会自动获得A.这是Maven的传递依赖关系解析机制。您不需要复制依赖关系。顺便说一句:如果你喜欢我的回答,请注册并接受。 –