sofastack / sofa-jraft

A production-grade java implementation of RAFT consensus algorithm.
https://www.sofastack.tech/projects/sofa-jraft/
Apache License 2.0
3.57k stars 1.14k forks source link

Maven dependencies seems heavy somehow #342

Closed NickNYU closed 4 years ago

NickNYU commented 4 years ago

Maven dependencies seems a little heavy

It really surprised me while I was exploring the maven dependencies page, as below:

<!-- jraft -->
    <dependency>
        <groupId>com.alipay.sofa</groupId>
        <artifactId>jraft-core</artifactId>
        <version>${version}</version>
    </dependency>
    <!-- jsr305 -->
    <dependency>
        <groupId>com.google.code.findbugs</groupId>
        <artifactId>jsr305</artifactId>
        <version>3.0.2</version>
    </dependency>
    <!-- bolt -->
    <dependency>
        <groupId>com.alipay.sofa</groupId>
        <artifactId>bolt</artifactId>
        <version>1.5.3</version>
    </dependency>
    <dependency>
        <groupId>com.alipay.sofa</groupId>
        <artifactId>hessian</artifactId>
        <version>3.3.6</version>
    </dependency>
    <!-- log -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.21</version>
    </dependency>
    <!-- disruptor -->
    <dependency>
        <groupId>com.lmax</groupId>
        <artifactId>disruptor</artifactId>
        <version>3.3.7</version>
    </dependency>
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.4</version>
    </dependency>
    <dependency>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        <version>2.6</version>
    </dependency>
    <!-- protobuf -->
    <dependency>
        <groupId>com.google.protobuf</groupId>
        <artifactId>protobuf-java</artifactId>
        <version>3.5.1</version>
    </dependency>
    <!-- protostuff -->
    <dependency>
        <groupId>io.protostuff</groupId>
        <artifactId>protostuff-core</artifactId>
        <version>1.6.0</version>
    </dependency>
    <dependency>
        <groupId>io.protostuff</groupId>
        <artifactId>protostuff-runtime</artifactId>
        <version>1.6.0</version>
    </dependency>
    <!-- rocksdb -->
    <dependency>
        <groupId>org.rocksdb</groupId>
        <artifactId>rocksdbjni</artifactId>
        <version>5.14.2</version>
    </dependency>
    <!-- java thread affinity -->
    <dependency>
        <groupId>net.openhft</groupId>
        <artifactId>affinity</artifactId>
        <version>3.1.7</version>
    </dependency>
    <!-- metrics -->
    <dependency>
        <groupId>io.dropwizard.metrics</groupId>
        <artifactId>metrics-core</artifactId>
        <version>4.0.2</version>
    </dependency>

A lite maven dependency is in need

Perhaps, a lite version with only core features workable, is suitable for me, as I may not need such huge a package, that given fully functionalities.

Environment

fengjiachun commented 4 years ago

These dependencies are not all included in jraft-core. What problems have you encountered? Jar conflict?

zongtanghu commented 4 years ago

@NickNYU Actually,if you want to use jraft-core,your project maven pom file just dependency as follows:

com.alipay.sofa jraft-core XXXX

and some little related dependency.

zongtanghu commented 4 years ago

And you can also see the jraft-example project as your using example.The link is: https://github.com/sofastack/sofa-jraft/blob/master/jraft-example/pom.xml