Files
allwpilib/MavenArtifacts.md
PJ Reiniger c6f54e963c [build] Fixup maven publishing (#8753)
This primarily fixes up the bazel publishing to match the gradle
publishing again, as some new libraries were added but not hooked up to
the maven publishing.

During the process, I noticed that the 3rd party libraries (googletest,
catch2, and imgui_suite) were still getting published on the old
`edu.wpi` namespace. I tried to clean up all the other references to
that that I could. Note: opencv and libssh are handled outside
`allwpilib` so they need to be updated separately.
2026-04-11 13:52:43 -07:00

3.7 KiB

WPILib Maven Artifacts

WPILib publishes its built artifacts to our Maven server for use by downstream projects. This document explains these locations, and the meanings of artifact names, classifiers, and versions.

Repositories

We provide two repositories. These repositories are:

The release repository is where official WPILib releases are pushed. The development repository is where development releases of every commit to main is pushed.

Artifact classifiers

We provide two base types of artifacts.

The first types are Java artifacts. These are usually published as jar files. Usually, the actual jar file is published with no classifier. The sources are published with the -sources classifier, and the javadocs are published with the -javadoc classifier. These artifacts are published with the base artifact name as their artifact ID, with a -java extension.

Example:

org.wpilib.wpilibj:wpilibj-java:version

The second types are native artifacts. These are usually published as zip files. The -sources and -headers classifiers contain the sources and headers respectively for the library. Each artifact also contains a classifier for each platform we publish. This platform is in the format {os}{arch}. The full list of supported platforms can be found in native-utils. If the library is built statically, it will have static appended to the classifier. Additionally, if the library was built in debug mode, debug will be appended to the classifier. The platform artifact only contains the binaries for a specific platform. Note that the binary artifacts never contain the headers, you always need the -headers classifier to get those.

If the library is Java and C++ and has a JNI component, the native artifact will have a shared library containing JNI entrypoints alongside the C++ shared library. This JNI shared library will have a jni suffix in the file name.

Native artifacts are published with the base artifact name as their artifact ID, with a -cpp extension.

Example:

org.wpilib.wpimath:wpimath-cpp:version:classifier@zip
org.wpilib.wpimath:wpimath-cpp:version:windowsx86-64staticdebug@zip

Provided Artifacts

This repository provides the following artifacts. Below each artifact is its dependencies.

For C++, if building with static dependencies, the listed order should be the link order in your linker.

All artifacts are based at org.wpilib.halsim.artifactname in the repository.

  • wpiutil

  • wpigui

    • imgui
  • wpimath

    • wpiutil
  • wpinet

    • wpiutil
  • ntcore

    • wpiutil
    • wpinet
  • glass/libglass

    • wpiutil
    • wpimath
    • wpigui
  • glass/libglassnt

    • wpiutil
    • wpinet
    • ntcore
    • wpimath
    • wpigui
  • hal

    • wpiutil
  • halsim

    • wpiutil
    • wpinet
    • ntcore
    • wpimath
    • wpigui
    • libglass
    • libglassnt
  • cscore

    • opencv
    • wpinet
    • wpiutil
  • cameraserver

    • ntcore
    • cscore
    • opencv
    • wpinet
    • wpiutil
  • wpilibj

    • hal
    • cameraserver
    • ntcore
    • cscore
    • wpinet
    • wpiutil
  • wpilibc

    • hal
    • cameraserver
    • ntcore
    • cscore
    • wpimath
    • wpinet
    • wpiutil
  • commandsv2

    • wpilibc
    • hal
    • cameraserver
    • ntcore
    • cscore
    • wpimath
    • wpinet
    • wpiutil
  • wpiunits

  • apriltag

    • wpiutil
    • wpimath

Third Party Artifacts

This repository provides the builds of the following third party software.

All artifacts are based at org.wpilib.thirdparty.frcYEAR in the repository.

  • apriltaglib
  • googletest
  • imgui
  • opencv
  • libssh