我可以添加以.jar以外的其他方式打包的maven依赖项吗?

时间:2014-10-29 09:52:17

标签: java eclipse maven dependencies parent-pom

我刚用maven制作了我的第一个父模块项目,并成功安装了它。我可以将此项目作为依赖项添加到另一个项目中,只能通过引用父项吗?我的Eclipse IDE抱怨它无法找到 parent .jar,但这并不奇怪,因为它打包为 parent .pom。

问题: 因此可以添加父(.pom)依赖项,并免费获取所有传递依赖项,或者我是否必须添加.jar。

奖金问题: 是否有可能将依赖关系添加到其他包装格式中,如战争?我无法弄清楚它是如何工作的,或者为什么我现在需要它。好奇。

声明: 我还在学习maven,并发现它的哲学和理论很棒。然而,有许多坑和礁石似乎突然出现,不止一次,我很难看到我是否想要做一些不可能的事情,或者如果配置中存在另一个错误。现在Eclipse说它在这个特定的项目中找不到我的.m2引用的任何依赖项。我不知道为什么,因为其他项目工作正常。换句话说,我试图通过检查当时的一个区域来找到错误......

1 个答案:

答案 0 :(得分:2)

答案:是的,你可以添加不同的类型,如pom,test-jar等。 Jar只是默认的

奖励答案:是的,您也可以指定类型战争

Maven-Guide定义了以下类型:“当前的核心包装值是:pom,jar,maven-plugin,ejb,war,ear,rar,par。”

以下是有关如何包含POM的示例:

<dependencies>
  <dependency>
   <groupId>com.my</groupId>
   <artifactId>comm-group</artifactId>
   <type>pom</type>
  </dependency>
</dependencies>

这(comm-group的pom)通常用于对某些依赖项进行分组,并使用type-pom包含所有依赖项。

以下是有关分组的其他信息:http://blog.sonatype.com/2009/10/maven-tips-and-tricks-grouping-dependencies/#.VFC7LR_JY8c请注意,您可以使用多态创建类似的行为。

当我们从Ant迁移时,我遇到了maven的问题,我仍然对它有一定的关注(如果80%的SWE应用了错误的范围,类型等等,那么maven的优势就会导致一个巨大的缺点,如果他们只是'需要添加一个拳击罐'以及由“maven gurus”引导的重构。

但是:我可以向您保证,如果您完全通过http://maven.apache.org/pom.html,那么随着时间的推移,您将获得与ANT相比较令人满意的结果。

更新:我刚刚遇到了我的pom无法包含在远程构建服务器上的情况,因为它在Intellij Idea / Eclipse中构建它。在我的情况下,类型定义必须是小写的(例如'pom'而不是'POM')。