Java 如何依赖maven版本组中的所有工件?

Java 如何依赖maven版本组中的所有工件?,java,maven,lucene,Java,Maven,Lucene,我是Maven的新手,我第一次尝试建立一个项目。我想写一些依赖于ApacheLucene的代码。这是我想得到的一个答案 有没有办法不显式地列出每个工件,而直接依赖给定版本的所有工件?我试过这个: <dependency> <groupId>org.apache.lucene</groupId> <artifactId>*</artifactId> <version>3.6.1</version> &l

我是Maven的新手,我第一次尝试建立一个项目。我想写一些依赖于ApacheLucene的代码。这是我想得到的一个答案

有没有办法不显式地列出每个工件,而直接依赖给定版本的所有工件?我试过这个:

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

org.apache.lucene
*
3.6.1
这给了我错误

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

当我显式地声明依赖项时,我可以验证我是否可以下载它们。IE这很好用:

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

org.apache.lucene
lucene岩芯
3.6.1

我意识到依赖lucene中的所有东西可能是次优的,但对于快速而肮脏的事情,我不愿意手动填充所有这些小lucene库。在maven中获取大量相关依赖项的典型做法是什么?

简短回答:您不能。请记住,您只需执行一次,稍后您就可以简单地复制粘贴依赖项(尽管不是很枯燥)。还要考虑创建一个原型,它将快速创建具有所有必需依赖关系的骨架(对于快速和肮脏的项目)。 更长的回答:好吧,你可以解决这个问题。使用以下内容创建一个单独的
pom.xml

<packaging>pom</packaging>
pom
然后一个接一个地手动声明所有Lucene依赖项。彻底地稍后,您只需向
pom.xml
(即
groupId
/
artifactId
/
版本
中定义的)添加一个依赖项,该依赖项将可传递地包括该
pom.xml
的所有依赖项


谈论可传递性:如果您依赖maven中的一个JAR,并且该JAR具有其他依赖项,那么您将隐式地获得该可传递依赖项。检查Lucene
pom
s,也许导入其中的几个并依赖于可传递依赖项就足够了

在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>

org.springframework
春豆
spring上下文
春豆
4.3.7.1发布

这是一项相对较新的功能吗?我刚刚在maven 3.0.5中尝试了这个,但这是不允许的。这适用于maven 3.5.0。我目前正在使用相同的。请尝试使用ApacheMaven 3.6.3,这根本不起作用<代码>[错误]处理POM时遇到一些问题:[致命]不可解析的POM/foobar/POM.xml:重复的标记:“artifactId”(位置:START\u tag seen…\n…@76:25)@第76行第25列