0

为什么文件中的某些 maven 依赖项.pom会导致以下错误:Missing artifact nonfree-lingpipe:lingpipe:jar:2.3.1?所有依赖项都列在 .pom 文件中。在 .m2 文件夹中,我有所有依赖文件夹,但不是所有 jar:所以对于nonfree-lingpipe:lingpipe:jar:2.3.1- 没有 jar,但我有一个4.1.0. 为什么maven没有那个,而是搜索的2.3.1?我没有在文件中看到任何版本.pom,只有名称。

4

2 回答 2

0

dependencyManagement中的定义仅定义了应该在哪个版本中使用它的工件,但并没有真正使用这个工件。此外,给定的示例:

<dependencies>
  <dependency>
    <groupId>nonfree-lingpipe</groupId>
    <artifactId>lingpipe:jar</artifactId>
    <version>2.3.1</version>
  </dependency>
</dependencies>

是错误的,因为 artifactId 不应该包含冒号。正确的方法是:

<dependencies>
  <dependency>
    <groupId>nonfree-lingpipe</groupId>
    <artifactId>lingpipe</artifactId>
    <version>2.3.1</version>
  </dependency>
</dependencies>

此外,您需要在 dependencyManagement 块之外定义此依赖项才能真正使用此依赖项。

于 2012-11-26T10:25:42.013 回答
0

Maven 依赖项必须指定版本号。如果您看不到列出的一个,那么您的 POM 或其父项之一中必须有一个依赖管理元素:

<project>  
  ...
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>nonfree-lingpipe</groupId>
        <artifactId>lingpipe:jar</artifactId>
        <version>2.3.1</version>
      </dependency>
    </dependencies>
  </dependencyManagement>
  ...
</project>

要对 4.1.0 进行更改,您必须在依赖项声明中明确指定版本,或者查找依赖项管理部分并在那里进行更改。

于 2012-11-26T09:08:02.040 回答