由于 pom.xml 中的错误,无法使用 Maven 运行构建

Posted

技术标签:

【中文标题】由于 pom.xml 中的错误,无法使用 Maven 运行构建【英文标题】:Couldn't run build using Maven because of an error in pom.xml 【发布时间】:2012-01-10 09:04:09 【问题描述】:

我正在尝试在 Eclipse 中构建一个新的 Maven 项目。 在我的 pom.xml 中,我收到一个错误,上面写着

在这一行找到多个注释: - 缺少工件 maven-plugins:maven-findbugs-plugin:plugin:1.3.1 - 缺少工件 maven-plugins:maven-cobertura-plugin:plugin:1.3

这是我在 pom.xml 中“cobertura”的依赖代码:

   <dependency>
        <groupId>maven-plugins</groupId>
        <artifactId>maven-cobertura-plugin</artifactId>
        <version>1.3</version>
        <type>plugin</type>
    </dependency>

我尝试如下添加存储库,但仍然没有工作。

  <repositories>
    <repository>
        <id>repository.maven-plugins.sourceforge.net</id>
        <name>maven plug-in repository</name>
        <url>http://maven-plugins.sourceforge.net/repository</url>
    </repository>
    <repository>
        <id>repository.ibiblio.org-maven</id>
        <name>ibiblio repository</name>
        <url>http://www.ibiblio.org/maven</url>
    </repository>
</repositories>

这里有 Maven 插件的链接http://maven-plugins.sourceforge.net/maven-findbugs-plugin/announcements/announcement-1.3.1.txt

http://maven-plugins.sourceforge.net/maven-cobertura-plugin/announcements/announcement-1.3.txt

我不想手动安装这些插件。我需要通过在 pom.xml 中声明它们来自动安装它们

请帮忙。

谢谢

【问题讨论】:

类似于***.com/questions/8295458/…? 【参考方案1】:

作为一个相关问题,我发现例如jaxen-1.1.3 引用了上述 maven1 工件。 Eclipse 中的 POM 编辑器向您显示依赖关系层次结构。它为选择显式排除添加了以下内容:

    <dependency>
        <groupId>jaxen</groupId>
        <artifactId>jaxen</artifactId>
        <version>1.1.3</version>
        <exclusions>
            <exclusion>
                <artifactId>maven-cobertura-plugin</artifactId>
                <groupId>maven-plugins</groupId>
            </exclusion>
            <exclusion>
                <artifactId>maven-findbugs-plugin</artifactId>
                <groupId>maven-plugins</groupId>
            </exclusion>
        </exclusions>
    </dependency>

【讨论】:

jdom 1.1.2 还包括导入这些工件的 jaxen 1.1.3。相同的修复适用于 jdom 依赖项。谢谢!【参考方案2】:

这些是 maven 1 插件,不适用于 maven 2。这些是插件的当前版本。

cobertura maven plugin2.5.1 findbugs maven plugin2.3.3

您可以在&lt;plugins&gt; 标签内定义插件,而不是在&lt;dependencies&gt; 标签内。还要注意下面这些插件的groupIdartifactId 的变化...

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>cobertura-maven-plugin</artifactId>
    <version>2.5.1</version>   
 </plugin>

 <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>findbugs-maven-plugin</artifactId>
    <version>2.3.3</version>    
  </plugin>

【讨论】:

这不起作用,因为 jaxen 明确要求 cobertura 1.3 和 findbugs 1.3.1。

以上是关于由于 pom.xml 中的错误,无法使用 Maven 运行构建的主要内容,如果未能解决你的问题,请参考以下文章

Maven 全局插件配置

我在 pom.xml 中的 artifactID 没有在 Intellij 中注册

Maven pom.xml中添加指定的中央仓库

pom.xml

SpringDataJpa项目中的使用

使用 Maven 发布插件时在 Perforce 中锁定源文件