我是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中获取大量相关依赖项的典型做法是什么?
简短的回答:你做不到.请记住,您只需执行此操作,之后您可以简单地复制粘贴依赖项(尽管不是很干).还要考虑创建一个原型,它将快速创建一个包含所有必需依赖项的框架(用于快速和脏项目).
更长的答案:嗯,你可以解决这个问题.创建一个单独pom.xml的:
<packaging>pom</packaging>
Run Code Online (Sandbox Code Playgroud)
并一个接一个地手动声明所有Lucene依赖项.一劳永逸.稍后,您可以简单地添加一个依赖于你的pom.xml(也就是groupId/ artifactId/ version其中所述),这将传递地包括所有的依赖性pom.xml.
谈论传递性:如果您依赖maven中的JAR并且JAR具有其他依赖性,则会隐式地获得传递依赖性.检查Lucene poms,也许它足以导入其中的一些并依赖于传递依赖?