java - 我如何依赖来自 Maven 的一组版本中的所有 Artifact ?

标签 java maven lucene

我是 Maven 新手,第一次尝试构建项目。我想写一些依赖于 apache lucene 的代码。这是一个 list of artifacts in maven我想要得到的。

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

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

这给了我错误

'dependencies.dependency.artifactId' for org.apache.lucene::jar with value '' does not match a valid id pattern. @ line 19, column 19

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

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

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

最佳答案

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

更长的答案:好吧,你可以解决这个问题。使用以下内容创建一个单独的 pom.xml:

<packaging>pom</packaging>

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

谈论传递性:如果您依赖 Maven 中的 JAR 并且该 JAR 具有其他依赖项,您将隐式获得该传递性依赖项。检查 Lucene pom,也许只导入其中的几个并依赖传递依赖就足够了?

关于java - 我如何依赖来自 Maven 的一组版本中的所有 Artifact ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13772290/

相关文章:

java - 使用 DataOutputStream 时出现奇怪的输出

solr - 如何通过Gradle运行Solr 4.4?

elasticsearch - Solr使用索引字段进行半径的空间搜索?

search - 使用通配符突出显示的 Elasticsearch 无法按预期工作

java - 我可以使用 Java Feign 客户端请求另一个 API 吗?

java - 字符串 a == 字符串 b 的规则

java - Hibernate 尝试向不存在的表插入数据

java - 使用嵌入式 tomcat 7 获取 EOFException

xmllint:非根 xml 元素上的 xmlns?

maven - Docker Maven Spotify 插件 - 可以切换到非安全注册表