【问题标题】:Onejar-maven-plugin to set the order of jar loadingonejar-maven-plugin 设置jar加载顺序
【发布时间】:2013-09-19 19:05:35
【问题描述】:

我一直在使用库 apache-log4j-extras 进行日志记录。它包含类 org.apache.log4j.Logger

现在我不得不引用一些第 3 方库,它使用 logback 并且在其依赖项中具有 log4j-over-slf4j (jar)。不幸的是,后一个 jar 还包含类 org.apache.log4j.Logger

看起来后一个类是 onejar 类加载器的首选...

我不需要 logbacklog4j-over-slf4j。只想要我的 org.apache.log4j.Loggerapache-log4j-extras 回来。 Onejar-maven-plugin 有哪些选择?

编辑:这似乎是 IDEA 中的调试模式的问题,而不是 onejar 的问题。但是问题仍然存在:如何确保使用 Onejar 加载所需的类?

EDIT2: 例如在 C# 中,可以使用“extern alias”功能轻松解决。

【问题讨论】:

    标签: maven classloader slf4j logback onejar


    【解决方案1】:

    为什么不直接排除呢?

    <dependency>
        <groupId>my.naughty.thirdparty</groupId>
        <artifactId>thirdparty-with-log4j-over-slf4j</artifactId>
        <version>${thirdparty.version}</version>
        <exclusions>
            <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>log4j-over-slf4j</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    

    【讨论】:

      【解决方案2】:

      看起来(对于IDEA中的调试模式)只是切换依赖顺序解决了这个问题。

      过得怎么样:

          <dependency>
              <groupId>my.naughty.thirdparty</groupId>
              <artifactId>thirdparty-ref-log4j-over-slf4j</artifactId>
              <version>0.50</version>
          </dependency>
          <dependency>
              <groupId>log4j</groupId>
              <artifactId>apache-log4j-extras</artifactId>
              <version>1.1</version>
          </dependency>
      

      改为:

          <dependency>
              <groupId>log4j</groupId>
              <artifactId>apache-log4j-extras</artifactId>
              <version>1.1</version>
          </dependency>
          <dependency>
              <groupId>my.naughty.thirdparty</groupId>
              <artifactId>thirdparty-ref-log4j-over-slf4j</artifactId>
              <version>0.50</version>
          </dependency>
      

      但我当然不能认为它是一个强大的解决方案,尤其是对于 Onejar。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-08-29
        • 2013-01-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多