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

时间:2012-12-07 22:53:01

标签: java maven lucene

我是Maven的新手,我正在尝试第一次建立一个项目。我想写一些依赖于apache lucene的代码。这是我想要的list of artifacts in 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中获取大量相关依赖项的典型做法是什么?

2 个答案:

答案 0 :(得分:5)

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

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

<packaging>pom</packaging>

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

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

答案 1 :(得分:0)

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