错误:log4j-api-2.9.0.jar 是多版本 jar 文件,但未设置 --multi-release 选项

2023-11-24

探索maven-jdeps-plugin:3.1.0与Java9使用以下最小pom.xml:-

<dependencies>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.9.0</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.7.0</version>
            <configuration>
               <source>1.9</source>
               <target>1.9</target>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jdeps-plugin</artifactId>
            <version>3.1.0</version>
            <executions>
                <execution>
                    <goals>
                        <goal>jdkinternals</goal> <!-- verify main classes -->
                        <goal>test-jdkinternals</goal> <!-- verify test classes -->
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

执行时

mvn install

我最终收到了一个详细的错误,内容如下:-

[INFO] Error: log4j-api-2.9.0.jar is a multi-release jar file but --multi-release option is not set
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.389 s
[INFO] Finished at: ...
[INFO] Final Memory: 12M/41M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-jdeps-plugin:3.1.0:jdkinternals (default) on project maven-jigsaw: 
[ERROR] Exit code: 2
[ERROR] Command line was: /bin/sh -c '/Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home/bin/jdeps' '-cp' '.../.m2/repository/org/apache/logging/log4j/log4j-api/2.9.0/log4j-api-2.9.0.jar' '../maven/target/classes'

我找不到太多相关的内容--multi-release标记在任一jdeps:jdkinternalsMaven 官方网站甚至在jdeps tool记录在 Oracle 帮助中心。

有人可以解释一下这个实现吗maven-jdeps-plugin?有没有办法解决这个问题(设置--multi-release选项)?


关于插件本身,以下配置有效。

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jdeps-plugin</artifactId>
    <version>3.1.1</version>
    <executions>
      <execution>
        <goals>
          <goal>jdkinternals</goal> <!-- verify main classes -->
          <goal>test-jdkinternals</goal> <!-- verify test classes -->
        </goals>
      </execution>
    </executions>
    <configuration>
      <multiRelease>9</multiRelease> <!-- Check this out -->
    </configuration>
  </plugin>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

错误:log4j-api-2.9.0.jar 是多版本 jar 文件,但未设置 --multi-release 选项 的相关文章

随机推荐

  • 密码验证 REGEX 禁止空格

    密码不能包含空格 必须至少包含一个数字字符 必须包含 1 个大写字母 长度至少为 8 个字符 最多 15 个 这就是我所拥有的 它可以执行除空白规则之外的所有操作 d A Z 8 15 为此添加什么 多谢 语言 c asp RegularE
  • 拨打 USSD 代码?

    当我直接从听筒拨打时 它可以工作 例如 123 获取号码余额 但是 当我尝试在应用程序中执行相同的操作时 我遇到了问题 拨号器中显示的号码缺少结尾 我的应用程序中需要它 我希望我的应用程序应该支持所有 USSD 代码 有没有办法在应用程序中
  • javascript 传递 eval 变量

    我有 eval 函数 它需要从 php 执行 javascript 但我需要传递元素 这样我就可以将鼠标悬停在用户单击的链接上的提示上 var globalEval function globalEval src element if wi
  • 不可变且按值传递

    我有以下代码一个可变的 Person 类 String 以及修改 String 和 Person 实例的方法 class Person int a 8 public int getA return a public void setA in
  • 限制UITextview的行数

    我想知道如何限制用户在编辑 UITextField 时可以输入的行数 不是其他问题中询问的字符数 理想情况下 我想将输入限制为最大值 10 行 我需要从哪里开始 我是否用某种方法来做到这一点 在 BOOL textViewShouldBeg
  • SpelEvaluationException:EL1007E:(位置43):在空值上找不到字段或属性“组”

    我已经为我的 Web 应用程序完全配置了 SPRING METHOD 安全性 启用 PRE POST 注释 然而最近我遇到了一个奇怪的问题 总结如下 POJOS总结 User Class public class User int id S
  • Ninject 和静态类 - 如何?

    我有一个静态类 我需要向其中注入一些实例 静态类可以有静态构造函数 但它必须是无参数的 那么 我该如何向其中注入一些东西呢 我不想创建一个单身人士 我希望有一个静态类 并且它的方法之一对应该注入的实例进行操作 下面是我需要的示例 publi
  • 确定在 UIActivityViewController 中单击了哪个图标

    使用 社交 框架 当呈现显示所有常用社交媒体图标的模态 UIActivityViewController 时 有没有办法准确找出用户单击了哪个图标 意思是 如果他们选择 Twitter Facebook 邮件 消息等呢 我期望可能在文档中看
  • 使用情节提要中的选项卡控制器以编程方式打开视图

    我有一个故事板 其中包含以下视图 场景 登录屏幕 TabBarController 有 4 个选项卡 库 工作流程 设置和下载 基于通过单击按钮 登录 的用户登录 我以编程方式加载选项卡栏控制器 始终使用以下代码的第一个选项卡 Librar
  • Aestan 托盘菜单错误 [重复]

    这个问题在这里已经有答案了 我在Windows XP中安装了wamp服务器2 2e 当我启动 wamp 服务器时 它显示 Windows 错误 Aestan 托盘菜单遇到问题 需要关闭 对于给您带来的不便 我们深表歉意 任何人都可以建议如何
  • @DynamicInsert @DynamicUpdate 不起作用?

    我正在使用休眠4 当我使用 org hibernate annotations Entity dynamicInsert true dynamicUpdate true selectBeforeUpdate true 有用 但是 我发现它们
  • 服务器和客户端应用程序之间的推送通知机制

    我正在使用 C 开发一个桌面应用程序 它通过 WCF Web 服务与服务器进行通信 它应该是一种同步应用程序 这意味着当我对客户端应用程序进行一些更改时 我也应该立即更新服务器 这很容易使用服务调用 但也应该提供这种机制 反之亦然 服务器上
  • python matplotlib:如何自动将图形保存为.fig格式?

    通过 python matplotlib 模块 我们可以使用 pylab savefig 函数来保存图形 然而 这个函数似乎不能用于保存 fig 格式的图形 fig 格式是 matlab 图形格式 使用 fig格式 我们可以调整 修改数字
  • Django 无法删除数据库:psycopg2.OperationalError:无法删除当前打开的数据库

    每当我尝试通过 manage py 运行 Django 测试时 测试都会运行良好 但是最后当 Django 销毁数据库时 会发生以下错误 Destroying test database for alias default Tracebac
  • 如何避免 MySQL 数据库中的重复条目而不引发错误

    我正在使用 Python MySQL MySQLdb 库将值插入数据库 我想避免重复的条目被插入到数据库中 所以我添加了uniqueMySQL 中该列的约束 我正在检查重复项title柱子 在我的 Python 脚本中 我使用以下语句 cu
  • 如何捕获数据表的下一个/上一个分页按钮上的事件

    有人可以向我展示如何捕获数据表的下一个 上一个分页按钮上的事件的示例吗 我特别对 下一步 按钮感兴趣 如果您有一个如何捕获特定分页按钮事件的示例 那对我真的很有帮助 我在数据表中进行了搜索 发现要捕获事件 您应该使用以下命令 example
  • 如何在Javascript中使用window.open将值从子窗口返回到父窗口?

    我有一个父窗口 我使用 window open 打开一个子窗口 如下所示 我想从子窗口获取一个布尔值 在此基础上我将在父窗口中执行任务 function openChildWin var childWin window open child
  • “也许 git-rebase 坏了”

    第三次更新 更多信息 git bash shell 中的命令按预期工作 在 git bash shell 中 Git bin git exe 被调用 Git bin 是 sh exe 所在的位置 在PowerShell 或cmd tcc 中
  • 如何替换已弃用的方法 Date.setHours(int)?

    我有一些已弃用的Date我的 Java 代码中的方法 如果有人可以在这里指导我 我将不胜感激 我有一个私有日期变量 private Date startime private Date endTime 在我的方法中我已经声明 Calenda
  • 错误:log4j-api-2.9.0.jar 是多版本 jar 文件,但未设置 --multi-release 选项

    探索maven jdeps plugin 3 1 0与Java9使用以下最小pom xml