6

我是 Maven 新手,我正在尝试第一次构建一个项目。我想写一些依赖于 apache lucene 的代码。这是我正在尝试获取的 Maven 中的工件列表。

有什么方法可以简单地依赖给定版本的所有工件,而不是明确列出每个工件?我试过这个:

<dependency>
  <groupId>org.apache.lucene</groupId>
  <artifactId>*</artifactId>
  <version>3.6.1</version>
</dependency>

这给了我错误

org.apache.lucene: 的 'dependencies.dependency.artifactId'值为 ' ' 的 jar 与有效的 id 模式不匹配。@ 第 19 行,第 19 列

当我明确声明依赖项时,我可以验证是否可以下载依赖项。IE 这工作正常:

<dependency>
  <groupId>org.apache.lucene</groupId>
  <artifactId>lucene-core</artifactId>
  <version>3.6.1</version>
</dependency>

我意识到依赖于 lucene 中的所有内容可能不是最理想的,但是为了做一些快速而肮脏的事情,我讨厌不得不手动填充所有这些小 lucene 库。在 maven 中获取大量相关依赖项的典型做法是什么?

4

2 回答 2

5

简短的回答:你不能。请记住,您只需执行一次,然后您可以简单地复制粘贴依赖项(虽然不是很干燥)。还可以考虑创建一个原型,该原型将快速创建具有所有必需依赖项的骨架(用于快速和肮脏的项目)。

更长的答案:嗯,你可以解决这个问题。创建一个单独pom.xml的:

<packaging>pom</packaging>

并在那里手动声明所有 Lucene 依赖项,一个接一个。一劳永逸。稍后您可以简单地向您的pom.xml(即在此处定义的groupId// artifactId)添加一个依赖项,该依赖version项将传递包含 that 的所有依赖项pom.xml

谈到传递性:如果你在 maven 中依赖一个 JAR,并且这个 JAR 有其他依赖项,你就会隐式地得到传递依赖项。检查 Lucene pom,也许只导入少数几个并依赖传递依赖就足够了?

于 2012-12-07T22:59:36.323 回答
-3

在 groupId 的单个依赖项中添加不同的 artifactId

<dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <artifactId>spring-context</artifactId>
        <artifactId>spring-beans</artifactId>
        <version>4.3.7.RELEASE</version>
    </dependency>
于 2017-04-06T18:58:23.877 回答