apache - Maven 依赖项排除 : Same artifact-id issue

标签 apache maven apache-fop

我有一个 Apache Cocoon 项目,我想将 Apache FOP 从 1.0 更新到 1.1,以修复外国(非拉丁)脚本问题,例如希腊语。

我发现 FOP 1.1 有 Maven 依赖项:

<dependency>
  <groupId>org.apache.xmlgraphics</groupId>
  <artifactId>fop</artifactId>
  <version>1.1</version>
</dependency>

错误: 无法在项目 X 上执行目标:无法解析项目 com.X:jar:1.0-SNAPSHOT 的依赖项:无法找到 org.apache.avalon .framework:avalon-framework-api:jar:4.2.0 http://repo.maven.apache.org/maven2 已缓存在本地存储库中,直到中央更新间隔已过或强制更新时,才会重新尝试解析 -> [帮助1]

我在这个问题上寻找解决方案,发现这个依赖项已经破坏了与其他一些依赖项的链接,FOP 1.1 需要调用这些依赖项。这些与 Avalon 框架 API 4.2 连接。我在邮件列表中读到,也许尝试使用排除并调用额外的依赖项工作正常。解决方案是这样的代码:

<dependency>
  <groupId>org.apache.xmlgraphics</groupId>
  <artifactId>fop</artifactId>
  <version>1.1</version>
  <exclusions>
    <exclusion>
     <artifactId>avalon-framework-api</artifactId>
     <groupId>org.apache.avalon.framework</groupId>
    </exclusion>
    <exclusion>
     <artifactId>avalon-framework-impl</artifactId>
     <groupId>org.apache.avalon.framework</groupId>
    </exclusion>
  </exclusions>
  </dependency>
  <!-- these two are to correct issues in fop dependency --> 
  <dependency>
   <groupId>avalon-framework</groupId>
   <artifactId>avalon-framework-api</artifactId>
   <version>4.2.0</version>
  </dependency>
  <dependency>
   <groupId>avalon-framework</groupId>
   <artifactId>avalon-framework-impl</artifactId>
   <version>4.2.0</version>
</dependency>

现在编译返回以下ERROR2: “无法在项目 X 上执行目标 org.apache.cocoon:cocoon-maven-plugin:1.0.0-M2:prepare (prepare) :至少有两个 ID 为“avalon-framework-api”的 Artifact :avalon-framework:avalon-framework-api:jar:4.2.0:compile”。

当然有。排除两个依赖项(损坏的依赖项),并调用其中两个依赖项(正确的依赖项)。我该如何解决这个问题?

最佳答案

尚未对此进行测试,但可能排除 org.apache.avalon.framework v4.2.0 并包含最新的 v4.3.1。如:

    <dependency>
        <groupId>org.apache.xmlgraphics</groupId>
        <artifactId>fop</artifactId>
        <version>1.1</version>
        <exclusions>
            <exclusion>
                <groupId>org.apache.avalon.framework</groupId>
                <artifactId>avalon-framework-api</artifactId>
            </exclusion>
            <exclusion>
                <groupId>org.apache.avalon.framework</groupId>
                <artifactId>avalon-framework-impl</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.apache.avalon.framework</groupId>
        <artifactId>avalon-framework-api</artifactId>
        <version>4.3.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.avalon.framework</groupId>
        <artifactId>avalon-framework-impl</artifactId>
        <version>4.3.1</version>
    </dependency>

关于apache - Maven 依赖项排除 : Same artifact-id issue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21351179/

相关文章:

php - 使用 MySQL 和 Redis 处理大数据

django - 为什么在 django 项目中更改某些文件后需要重新启动 apache

java - 获取maven插件在自己的Mojo中的目录路径

java - 从范围提供的 Maven Web 项目获取 jar

java - Java 中 Apache FOP 的 XSL 错误

php - 当我使用xampp启动moodle 2.6.2时,会发生appcrash问题

java - 在 Tomcat 7 上部署 War 错误

java - Spring Tool Suite/Maven 删除我的 .properties 文件

pdf - Apache FOP - 可以在 PDF 中滚动吗?

java - 使用流避免临时文件