Skip to main content

Using the BOM

Discord4J v3 uses a BOM or Bill of Materials as a way to coordinate dependencies that work well together, therefore providing faster and safer ways to migrate across versions.

Usage#

To check available versions make sure you go to the BOM repo and then replace 3.0.x below with the adequate version.

Maven#

Maven supports BOM through the dependencyManagement entry. You should first add this snippet to your pom.xml file:

<dependencyManagement>    <dependencies>        <dependency>            <groupId>com.discord4j</groupId>            <artifactId>bom</artifactId>            <version>3.x.x</version>            <type>pom</type>            <scope>import</scope>        </dependency>    </dependencies></dependencyManagement>

Then you are able to add dependencies just like normal ones, but without specifying the <version> attribute.

<dependencies>    <dependency>        <groupId>com.discord4j</groupId>        <artifactId>discord4j-core</artifactId>    </dependency>    <dependency>        <groupId>com.discord4j</groupId>        <artifactId>stores-caffeine</artifactId>    </dependency></dependencies>

Gradle#

Add the following to your build.gradle file to import the BOM, making sure replacing the version with the one you wish to use:

dependencies {    implementation platform("com.discord4j:bom:3.x.x")}

Finally, add the dependency as normal, without needing to specify the version:

dependencies {    compile "com.discord4j:discord4j-core"    compile "com.discord4j:stores-caffeine"}

Development builds#

You can also use SNAPSHOT and development builds from Jitpack with this BOM. You just have to also make sure you include the proper repository to pull the right dependencies:

Maven#

<repositories>    <repository>        <id>snapshots</id>        <url>https://oss.sonatype.org/content/repositories/snapshots</url>        <snapshots><enabled>true</enabled></snapshots>    </repository>    <repository>        <id>jitpack.io</id>        <url>https://jitpack.io</url>    </repository></repositories>

Gradle#

repositories {    // This repository is for SNAPSHOTs    maven { url 'https://oss.sonatype.org/content/repositories/snapshots' }    // This repository is for pulling dependencies from Jitpack    maven { url 'https://jitpack.io' }    // This repository is for releases    mavenCentral()}