首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Onejar-maven-plugin设置jar加载顺序

Onejar-maven-plugin设置jar加载顺序
EN

Stack Overflow用户
提问于 2013-09-19 19:05:35
回答 2查看 212关注 0票数 0

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

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

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

我不需要登录和登录。我只想要回我的org.apache.log4j.Loggerapache-log4j-extras。我对Onejar插件有什么选择?

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

EDIT2:,例如在C#中,它可以很容易地用"外接别名“特性解决。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-29 08:50:44

你为什么不把它排除在外呢?

代码语言:javascript
复制
<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>
票数 0
EN

Stack Overflow用户

发布于 2013-09-19 19:22:13

看起来(IDEA中的Debug模式的)只需切换依赖项顺序就可以解决这个问题。

情况如何:

代码语言:javascript
复制
    <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>

改为:

代码语言:javascript
复制
    <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。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18902913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档