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

Dou*_* T. 3 java lucene maven

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

有没有办法代替显式列出每个工件,我可以简单地依赖给定版本的所有工件?我试过这个:

<dependency>
  <groupId>org.apache.lucene</groupId>
  <artifactId>*</artifactId>
  <version>3.6.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

这给了我错误

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>
Run Code Online (Sandbox Code Playgroud)

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

Tom*_*icz 5

简短的回答:你做不到.请记住,您只需执行此操作,之后您可以简单地复制粘贴依赖项(尽管不是很干).还要考虑创建一个原型,它将快速创建一个包含所有必需依赖项的框架(用于快速和脏项目).

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

<packaging>pom</packaging>
Run Code Online (Sandbox Code Playgroud)

并一个接一个地手动声明所有Lucene依赖项.一劳永逸.稍后,您可以简单地添加一个依赖于你的pom.xml(也就是groupId/ artifactId/ version其中所述),这将传递地包括所有的依赖性pom.xml.

谈论传递性:如果您依赖maven中的JAR并且JAR具有其他依赖性,则会隐式地获得传递依赖性.检查Lucene poms,也许它足以导入其中的一些并依赖于传递依赖?