我是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中获取大量相关依赖项的典型做法是什么?
答案 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>