我是 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/