【问题标题】:Can I add maven dependencies that are packed as anything other than .jar?我可以添加打包为 .jar 以外的任何东西的 Maven 依赖项吗?
【发布时间】:2014-12-24 23:16:15
【问题描述】:

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

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

额外问题: 是否也可以将依赖项添加到其他打包格式,例如战争?我真的无法弄清楚它是如何工作的,或者为什么我现在需要它。只是好奇。

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

【问题讨论】:

    标签: java eclipse maven dependencies parent-pom


    【解决方案1】:

    回答:可以,可以添加不同的类型,如 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 的优势就是如果如果他们只需要添加一个 fcking jar 以及由“maven guru”领导的重构)。

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

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

    【讨论】:

    • 这真是一个很好的答案。我什至尝试过 规范。我已经阅读了大部分规范,但是在看到它们的实际用途之前很难记住它们:)。这意味着我的直觉是正确的,只添加一个父项,而不是所有的交互依赖项,而且我的错误确实来自其他地方:) 我很确定 Maven 将证明值得花时间学习它!谢谢你:)
    • @KjetilNordin 非常欢迎您! :) (当涉及到规范时,我知道那种感觉......我目前正在重构大约 15 个应用程序的 maven 架构,每个应用程序有 10 多个模块......这是规范第一次对我有实际用途)跨度>
    猜你喜欢
    • 2020-06-02
    • 1970-01-01
    • 1970-01-01
    • 2021-01-08
    • 1970-01-01
    • 1970-01-01
    • 2019-09-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多