【问题标题】:Adding a set of dependencies in maven在maven中添加一组依赖项
【发布时间】:2012-08-08 20:09:36
【问题描述】:

我已经阅读了如何获取我拥有的 jar 文件并将其添加到 maven 中的依赖系统中 link

但我想要的是,我有一组 30 到 40 个 jar 文件,我必须将它们添加到依赖系统中。我是否需要使用

添加所有 jar 文件
  1. mvn install:install-file -DgroupId=com.stackoverflow... -DartifactId=yourartifactid... -Dversion=1.0 -Dpackaging=jar -Dfile=/path/to/jarfile,

紧随其后,

2.

<dependencies>
        ...
        <dependency>
                <groupId>com.stackoverflow...</groupId>
                <artifactId>artifactId...</artifactId>
                <version>1.0</version>
        </dependency>
        ...
</dependencies>

或者有没有一种简单的方法可以让我使用 mvn:install 将所有依赖的 jar 文件打包到一个 maven 项目中,我的主项目可以依赖于该项目?

提前致谢。

【问题讨论】:

    标签: maven build-dependencies


    【解决方案1】:

    如果您所指的 30-40 个 jar 文件中的大多数是标准开源库,那么您不需要手动将它们 install 到本地存储库。也有可能其中许多是transitive,即一个dependency 反过来又拉入另一个。在这种情况下,您只需将主要依赖项添加为 dependency。这反过来又会引入传递的。

    如果大多数依赖项是专有的并且您自己管理它们,那么您很可能将它们放在源代码管理系统的某个特定文件夹中,例如lib。如果是这样,您可以跳过install 步骤,只需使用&lt;system&gt; 范围指定dependencies(请参阅here)。

    您可以定义一个 maven 项目(如 pom 类型)来指定所有 dependencies 并让您的主项目依赖它,如果 simplifies 的东西。

    【讨论】:

    • "你可以定义一个 maven 项目(作为 pom 类型)来指定所有依赖项,并让你的主项目依赖它,如果这样可以简化事情的话。感谢您的回复。是的,我们可以定义一个 Maven 项目来指定所有这些依赖项。但同样为了这个目的,我们需要分别创建不同的项目并将它们作为模块添加到一起以获得单个项目仪式?或者我们可以将个人回购空间中的所有罐子直接添加到一个项目中吗?有什么捷径可以做到吗?
    【解决方案2】:

    这个link的第一个答案真的解决了我的疑惑..

    “项目应该明确列出它们的所有依赖项,而不是依赖于继承它们(恕我直言)。这意味着您必须声明您的记录器几次,但它会为您节省以后的痛苦。(您当然可以使用单独的 POM 项目将相关的依赖项组合在一起,因此通常一起指定,例如链接中的休眠示例)。如果要集中依赖项的版本,可以在父 POM 中放置一个依赖项管理部分,这意味着您仍然在子项目,但版本来自父项目,从而确保一致性。没有声明依赖的子项目根本不会得到它。”

    因此,实践应该是为所有依赖项创建单独的 POM(子)项目,如果需要,我们可以使用聚合将它们包装到可以在我们的项目中单独引用的 Parent-POM。但是我们必须为每个依赖的 JAR 分别创建一个子项目。需要一点时间的过程,但似乎是唯一的答案。

    【讨论】:

      猜你喜欢
      • 2011-10-12
      • 1970-01-01
      • 2019-08-18
      • 1970-01-01
      • 2017-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-20
      相关资源
      最近更新 更多