Log4j2 与 apache Ivy 依赖管理无法解析 log4j-api-java9

2024-01-06

当尝试将 apache log4j2 与 ivy 构建管理工具一起使用时,在尝试解决依赖项时出现以下错误:

:: problems summary ::
:::: WARNINGS
        module not found: org.apache.logging.log4j#log4j-api-java9;2.11.0
    ==== local: tried
      C:\Users\Scott Neville\.ivy2\local\org.apache.logging.log4j\log4j-api-java9\2.11.0\ivys\ivy.xml
      -- artifact org.apache.logging.log4j#log4j-api-java9;2.11.0!log4j-api-java9.zip:
      C:\Users\Scott Neville\.ivy2\local\org.apache.logging.log4j\log4j-api-java9\2.11.0\zips\log4j-api-java9.zip
    ==== shared: tried
      C:\Users\Scott Neville\.ivy2\shared\org.apache.logging.log4j\log4j-api-java9\2.11.0\ivys\ivy.xml
      -- artifact org.apache.logging.log4j#log4j-api-java9;2.11.0!log4j-api-java9.zip:
      C:\Users\Scott Neville\.ivy2\shared\org.apache.logging.log4j\log4j-api-java9\2.11.0\zips\log4j-api-java9.zip
    ==== public: tried
      https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-api-java9/2.11.0/log4j-api-java9-2.11.0.pom
      -- artifact org.apache.logging.log4j#log4j-api-java9;2.11.0!log4j-api-java9.zip:
      https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-api-java9/2.11.0/log4j-api-java9-2.11.0.zip
        module not found: org.apache.logging.log4j#log4j-core-java9;2.11.0
    ==== local: tried
      C:\Users\Scott Neville\.ivy2\local\org.apache.logging.log4j\log4j-core-java9\2.11.0\ivys\ivy.xml
      -- artifact org.apache.logging.log4j#log4j-core-java9;2.11.0!log4j-core-java9.zip:
      C:\Users\Scott Neville\.ivy2\local\org.apache.logging.log4j\log4j-core-java9\2.11.0\zips\log4j-core-java9.zip
    ==== shared: tried
      C:\Users\Scott Neville\.ivy2\shared\org.apache.logging.log4j\log4j-core-java9\2.11.0\ivys\ivy.xml
      -- artifact org.apache.logging.log4j#log4j-core-java9;2.11.0!log4j-core-java9.zip:
      C:\Users\Scott Neville\.ivy2\shared\org.apache.logging.log4j\log4j-core-java9\2.11.0\zips\log4j-core-java9.zip
    ==== public: tried
      https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-core-java9/2.11.0/log4j-core-java9-2.11.0.pom
      -- artifact org.apache.logging.log4j#log4j-core-java9;2.11.0!log4j-core-java9.zip:
      https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-core-java9/2.11.0/log4j-core-java9-2.11.0.zip
        ::::::::::::::::::::::::::::::::::::::::::::::
        ::          UNRESOLVED DEPENDENCIES         ::
        ::::::::::::::::::::::::::::::::::::::::::::::
        :: org.apache.logging.log4j#log4j-api-java9;2.11.0: not found
        :: org.apache.logging.log4j#log4j-core-java9;2.11.0: not found
        ::::::::::::::::::::::::::::::::::::::::::::::
:: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS
C:\Users\Scott Neville\Documents\fh\running_app\backend\build.xml:77: impossible to resolve dependencies:

这是使用以下的 ivy.xml:

<ivy-module version="2.0">
  <info organisation="uk.co.worldsofwar" module="sipsoc"/>
  <dependencies>
    <dependency org="org.eclipse.jetty" name="jetty-http" rev="9.4.9.v20180320"/>
    <dependency org="org.eclipse.jetty" name="jetty-annotations" rev="9.4.9.v20180320" />
    <dependency org="org.eclipse.jetty" name="jetty-webapp" rev="9.4.9.v20180320" />
    <dependency org="org.freemarker" name="freemarker" rev="2.3.28" />
    <dependency org="org.glassfish.jersey.core" name="jersey-server" rev="2.27" />
    <dependency org="org.glassfish.jersey.containers" name="jersey-container-servlet" rev="2.27" />
    <dependency org="org.glassfish.jersey.media" name="jersey-media-json-jackson" rev="2.27" />
    <dependency org="com.auth0" name="java-jwt" rev="3.3.0" />
    <dependency org="com.zaxxer" name="HikariCP" rev="3.1.0" />
    <dependency org="org.postgresql" name="postgresql" rev="42.2.2" />
    <dependency org="org.apache.logging.log4j" name="log4j-api" rev="2.11.0" />
    <dependency org="org.apache.logging.log4j" name="log4j-core" rev="2.11.0" />



    <exclude org="*" ext="*" type="source" />
    <exclude org="*" ext="*" type="javadoc" />
    <exclude org="*" ext="*" type="tests" />

  </dependencies>
</ivy-module>

没有特殊的 ivysettings.xml 起作用,只是从公共存储库收集的默认值。依赖关系解析是通过 ant 完成的,只需使用非常标准的 . Java 运行时是版本 8(JDK 也是如此)。


添加依赖项配置以将构建与测试依赖项分开可以解决我的问题:

In the ivy.xml

<configurations>
  <conf name="build" description="development dependencies"/>
  <conf name="test" extends="build" visibility="private" description="testing dependencies"/>
</configurations>

<dependencies>
  <dependency org="org.apache.commons" name="commons-lang3" rev="3.9" conf="build->default"/>
  <dependency org="org.apache.logging.log4j" name="log4j-core" rev="2.11.1" conf="build->default"/>
  <dependency org="org.apache.logging.log4j" name="log4j-api" rev="2.11.1" conf="build->default"/>

  <dependency org="junit" name="junit" rev="4.12" conf="test->default"/>
  <dependency org="org.hamcrest" name="hamcrest" rev="2.1" conf="test->default"/>
</dependencies>

In 构建.xml解决依赖关系:

<target name="resolve" depends="init-ivy" description="resolve project dependencies">
  <ivy:resolve file="${ivy.file}"/>
  <ivy:retrieve sync="true" type="jar, bundle" pattern="lib/[conf]/[artifact].[ext]"/>
</target>

这会将依赖项放置在一个文件夹结构中,以便 ant 独立编译测试和构建源:
./lib/构建/
./lib/测试/

示例存储库 https://bitbucket.org/Skerwe/java-ant-ivy-project-template/src/master/我用它作为模板

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Log4j2 与 apache Ivy 依赖管理无法解析 log4j-api-java9 的相关文章

  • Java EE 6 和单例

    谁能解释一下在 Java EE 6 应用程序中实现 Singleton 的完整过程 我假设我不应该以声明静态变量的典型方式创建单例 而应该使用 Singleton注解 我必须这样做吗 难道只是声明一下的情况 Singleton就是这样 我还
  • 我在使用 JavaFX 绘制十字时遇到问题

    我正在尝试编写代码 在网格上对角绘制 3 个形状 前两个形状是正方形和圆形 我能做到 然而 第三种形状让我有些悲伤 我应该画一个十字 T 版本 而不是 X 每次我写出代码时 它看起来就像一个侧面 我知道我只是错过了一些简单的东西 但我真的很
  • 始终等待页面加载到 PageObjects 上

    因此 当出现问题时 我只是创建了一个简单的 selenium JBehave 代码 我将首先发布简化的代码 然后稍后解释我的问题是什么 所以这里我们有一个简单的 AbstractClass 它将在我的 PageObjects 上继承 此类仅
  • org.openqa.selenium.NoSuchSessionException:会话 ID 为空。调用 quit() 后使用 WebDriver?

    我已经进行了一些搜索 但仍然遇到同样的问题 我相信这可能是由于我的网络驱动程序是静态的造成的 我不太确定 在我的主课中 我包括了 BeforeTest and AfterTest BeforeTest包括根据我的 XML 文件启动新浏览器
  • NIO 直接缓冲区何时以及如何被释放?

    我有一个 C 库 需要一个临时缓冲区作为暂存空间 我正在考虑将直接字节缓冲区的地址传递给它 在最终释放缓冲区之前 是否允许虚拟机重新定位缓冲区 JNI 框架消失后 本机库将保留该指针 我的理解是 JNI 本地对象引用无法缓存 因为 VM 可
  • Java - 调整图像大小而不损失质量

    我有 10 000 张照片需要调整大小 因此我有一个 Java 程序来执行此操作 不幸的是 图像的质量损失很大 而且我无法访问未压缩的图像 import java awt Graphics import java awt AlphaComp
  • 在 libgdx 中渲染 box2d

    我有一个使用 FitViewport 的大小为 800x480 的游戏世界 并且最初使用像素渲染 box2d 实体 固定装置 因此所有物理效果都显得浮动且缓慢 查看文档后 我意识到 box2d 使用度量单位 因此我将 box2d 位置和大小
  • 我可以使用 Selenium Webdriver 测试元素的顺序吗?

    有一个表单 其中有 3 个字段 具有 3 个不同的 ID fieldset div div fieldset
  • ThreadPoolExecutor 和队列

    我以为使用线程池执行器 http docs oracle com javase 6 docs api java util concurrent ThreadPoolExecutor html我们可以提交Runnables 要在以下位置执行B
  • Java 8 Stream - 并行执行 - 不同的结果 - 为什么?

    假设我有一个List
  • Log4j 2.0 中发现 ClassNotFoundException

    我已经设置了 log4j12 api beta2 jar 的构建路径 但它给出了 以下错误请帮我解决这个问题我的代码如下 java 文件 package com sst log4j class Product private int pro
  • IntelliJ - 无效源版本:17

    我已经在 IntelliJ 中使用 Gradle 创建了一个使用 Java 17 的新 Java 项目 运行我的应用程序时出现错误Cause error invalid source release 17 我的设置 我已经安装了openjd
  • JavaFX Integer Spinner (IntegerSpinnerValueFactory) 不会将值回绕到最小值

    我创建了一个带有值的整数微调器 min 5 max 15 and initialValue 12 and wrapAround true 一旦旋转器到达max 15 增量期间的值 而不是将值重置为min 5 正如它所说文档 https op
  • Java DNSLookup MX 记录列表。类似于 MXToolBox

    我正在构建一个程序来列出域的所有 MX 记录 起初似乎工作正常 但与在线工具进行比较后http mxtoolbox com http mxtoolbox com 有些域程序无法获取 MX 记录 而 MXToolbox 可以 我不确定原因是什
  • 带等待/通知的同步块与不带等待/通知的同步块之间的区别?

    如果我只是使用synchronized 不是wait notify方法 它仍然是线程安全的吗 有什么不同 Using synchronized使方法 块一次只能由一个线程访问 所以 是的 它是线程安全的 这两个概念是结合在一起的 而不是相互
  • “强制更新快照/版本” - 这是什么意思

    在 Maven 项目中 选择 更新项目 时 有一个名为 强制更新快照 版本 的选项 它有什么作用 强制更新快照 版本 就像运行以下命令 mvn U install U 也可以用作 update snapshot 看here http boo
  • 将一个整数从 C 客户端发送到 Java 服务器

    我使用此代码将一个整数从我的 Java 客户端发送到我的 Java 服务器 int n rand nextInt 50 1 DataOutputStream dos new DataOutputStream socket getOutput
  • 在Java内存管理中,“PS”代表什么?

    每当我看到 Java 中对内存的引用时 各种空格总是以 PS 为前缀 PS 是什么意思 它开始困扰我 到目前为止我唯一的猜测是 泳池空间 但这将是多余的 例子 PS伊甸园空间 PS 幸存者空间 PS 终身空间 老一代 PS Perm Gen
  • java mysql 准备好的语句

    我正在尝试使用 java 向数据库中进行简单的插入 它告诉我我的 sql 语法已关闭 但是 当我复制打印出来的字符串并将其放入 phpmyadmin 中的 sql 命令中时 它会正确执行该命令 并且我似乎无法弄清楚 java 中的字符串查询
  • Volley 在第一次调用方法时返回 null

    我正在尝试使用 volley 从服务器检索数据 但是当我第一次调用此方法时 我收到服务器的响应 但该方法返回 null 如果我第二次调用它 我会得到最后的响应 public String retrieveDataFromServer Str

随机推荐