我可以在没有Commons-logging.jar的情况下使用Apache HTTPClient

时间:2014-02-05 05:45:43

标签: java apache-commons apache-httpclient-4.x

我正在尝试在我的项目中使用Apache HTTPClient。此处不需要此应用程序的任何日志记录。我可以在没有HTTPClient的情况下使用Commons-logging.jar吗?否则,这对我的发行包来说将是一个额外的不必要的负担。

2 个答案:

答案 0 :(得分:18)

是的,你可以。正如Hannes所说 - 这是我自己的HttpClient maven设置:

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.3.1</version>
    <exclusions>
        <exclusion>
            <artifactId>commons-logging</artifactId>
            <groupId>commons-logging</groupId>
        </exclusion>
    </exclusions>
</dependency>

接下来,由于common-logging确实是运行时依赖项,因此您需要为commons-logging定义SLF4J桥:

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>jcl-over-slf4j</artifactId>
    <version>1.7.5</version>
</dependency>

最后,您当然需要有一个有效的SLF4J配置 - 这是我的:

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.5</version>
</dependency>
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.0.11</version>
</dependency>

希望这会有所帮助。

答案 1 :(得分:4)

您可以将slf4j与JCL网桥一起使用。这会将JCL日志记录转发到slf4j。比添加像log back或log4j这样的slf4j适配器并正确配置它。

使用maven时,不要忘记排除JCL依赖项。

http://www.slf4j.org/legacy.html