diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index eb67f9d673d64afd51c05770cad275ebde39c3e5..1caa625c83361cfa5d374777dfceff6e270ee713 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -2406,3 +2406,37 @@ windows-x86_64-java11:build:
     variables:
       VTK_JAVA_VERSION: 11
     timeout: 4 hours
+
+java8:upload:
+    extends:
+        - .fedora39_java
+        - .java_upload_linux
+        - .linux_builder_tags
+        - .weekly_upload_only
+    dependencies:
+        - fedora39-java8:build
+        - macos-x86_64-java8:build
+        - macos-arm64-java8:build
+        - windows-x86_64-java8:build
+    needs:
+        - fedora39-java8:build
+        - macos-x86_64-java8:build
+        - macos-arm64-java8:build
+        - windows-x86_64-java8:build
+
+java11:upload:
+    extends:
+        - .fedora39_java
+        - .java_upload_linux
+        - .linux_builder_tags
+        - .weekly_upload_only
+    dependencies:
+        - fedora39-java11:build
+        - macos-x86_64-java11:build
+        - macos-arm64-java11:build
+        - windows-x86_64-java11:build
+    needs:
+        - fedora39-java11:build
+        - macos-x86_64-java11:build
+        - macos-arm64-java11:build
+        - windows-x86_64-java11:build
diff --git a/.gitlab/ci/configure_macos_arm64_java.cmake b/.gitlab/ci/configure_macos_arm64_java.cmake
index da549cbeb28309585a6fae4c7b2a963d93530e02..c203228c9ab5a48e4be5d4883f8423c8304b5d96 100644
--- a/.gitlab/ci/configure_macos_arm64_java.cmake
+++ b/.gitlab/ci/configure_macos_arm64_java.cmake
@@ -1,8 +1,10 @@
-include("${CMAKE_CURRENT_LIST_DIR}/configure_macos.cmake")
-
 set(VTK_JAVA_SOURCE_VERSION $ENV{VTK_JAVA_VERSION} CACHE STRING "" FORCE)
 set(VTK_JAVA_TARGET_VERSION $ENV{VTK_JAVA_VERSION} CACHE STRING "" FORCE)
 
+include("${CMAKE_CURRENT_LIST_DIR}/configure_macos.cmake")
+
+set(MAVEN_LOCAL_NATIVE_NAME "Darwin-arm64")
+
 set(CMAKE_OSX_DEPLOYMENT_TARGET "11.0" CACHE STRING "")
 
 set(JOGL_GLUE "$ENV{GIT_CLONE_PATH}/.gitlab/m2/org/jogamp/gluegen/gluegen-rt/2.3.2/gluegen-rt-2.3.2.jar" CACHE FILEPATH "")
diff --git a/.gitlab/ci/configure_macos_x86_64_java.cmake b/.gitlab/ci/configure_macos_x86_64_java.cmake
index a6b87e22673b3baecb2dad0c4114cd07a35b309c..cb5a54abbe2f40da12092ae6d9fe830faf4153eb 100644
--- a/.gitlab/ci/configure_macos_x86_64_java.cmake
+++ b/.gitlab/ci/configure_macos_x86_64_java.cmake
@@ -1,8 +1,10 @@
-include("${CMAKE_CURRENT_LIST_DIR}/configure_macos.cmake")
-
 set(VTK_JAVA_SOURCE_VERSION $ENV{VTK_JAVA_VERSION} CACHE STRING "" FORCE)
 set(VTK_JAVA_TARGET_VERSION $ENV{VTK_JAVA_VERSION} CACHE STRING "" FORCE)
 
+include("${CMAKE_CURRENT_LIST_DIR}/configure_macos.cmake")
+
+set(MAVEN_LOCAL_NATIVE_NAME "Darwin-amd64")
+
 # Ensure that we're targeting 11.0.
 set(CMAKE_OSX_DEPLOYMENT_TARGET "11.0" CACHE STRING "")
 
diff --git a/.gitlab/ci/configure_options.cmake b/.gitlab/ci/configure_options.cmake
index 63852a1c74121ac5a04b7d4e3de7584577ad9d0e..a5641156f6d86f5f173a5b0890c460b50978ba41 100644
--- a/.gitlab/ci/configure_options.cmake
+++ b/.gitlab/ci/configure_options.cmake
@@ -53,7 +53,7 @@ if ("$ENV{CMAKE_CONFIGURATION}" MATCHES "java")
   set(BUILD_TESTING OFF CACHE BOOL "" FORCE)
   set(CMAKE_INSTALL_JNILIBDIR "" CACHE STRING "")
   set(JOGL_VERSION "2.3.2" CACHE STRING "")
-  set(MAVEN_VTK_ARTIFACT_SUFFIX "-java8" CACHE STRING "")
+  set(MAVEN_VTK_ARTIFACT_SUFFIX "-java${VTK_JAVA_TARGET_VERSION}" CACHE STRING "")
   set(MAVEN_VTK_SNAPSHOT "-SNAPSHOT" CACHE STRING "")
   set(VTK_BUILD_TESTING OFF CACHE BOOL "" FORCE)
   set(VTK_DEBUG_LEAKS OFF CACHE BOOL "" FORCE)
@@ -68,6 +68,12 @@ if ("$ENV{CMAKE_CONFIGURATION}" MATCHES "java")
   set(VTK_MODULE_ENABLE_VTK_TestingRendering NO CACHE STRING "")
   set(VTK_MODULE_ENABLE_VTK_RenderingOpenXR NO CACHE STRING "" FORCE)
   set(VTK_VERSIONED_INSTALL "OFF" CACHE BOOL "" FORCE)
+  set(MAVEN_NATIVE_ARTIFACTS
+    Darwin-amd64
+    Darwin-arm64
+    Linux-amd64
+    Windows-amd64
+  )
 endif()
 
 # qt
diff --git a/.gitlab/ci/configure_windows_vs2022_java.cmake b/.gitlab/ci/configure_windows_vs2022_java.cmake
index e7390d20cdc936624ba65079971d01b53ebd1ca6..3c5fdb0d9dccb4e6acc2112148b9568903b6b4e1 100644
--- a/.gitlab/ci/configure_windows_vs2022_java.cmake
+++ b/.gitlab/ci/configure_windows_vs2022_java.cmake
@@ -1,5 +1,3 @@
-include("${CMAKE_CURRENT_LIST_DIR}/configure_windows.cmake")
-
 set(VTK_JAVA_SOURCE_VERSION $ENV{VTK_JAVA_VERSION} CACHE STRING "" FORCE)
 set(VTK_JAVA_TARGET_VERSION $ENV{VTK_JAVA_VERSION} CACHE STRING "" FORCE)
 
diff --git a/.gitlab/os-linux.yml b/.gitlab/os-linux.yml
index 764fef7f9f9e9e7e42c45f1ccf2f3112b54b4f80..9916d418c6d1e153e7ce0fc11d08e4ed208e86b9 100644
--- a/.gitlab/os-linux.yml
+++ b/.gitlab/os-linux.yml
@@ -804,3 +804,22 @@
         - exec .gitlab/ci/check_warnings.sh ./Testing/ExternalWasm
 
     interruptible: true
+
+.java_upload_linux:
+    stage: upload
+    script:
+        - *before_script_java_linux
+        - cp .gitlab/maven/conf/settings.xml "$HOME/.m2/settings.xml"
+        - xmlstarlet ed -O -L
+            -d '/_:settings/_:servers'
+            -s '/_:settings' -t elem -n servers -v ""
+            -s '/_:settings/servers' -t elem -n server -v ""
+            -s '/_:settings/servers/server' -t elem -n id -v "github"
+            -s '/_:settings/servers/server' -t elem -n username -v '${env.MAVEN_USERNAME}'
+            -s '/_:settings/servers/server' -t elem -n password -v '${env.MAVEN_PASSWORD}'
+            "$HOME/.m2/settings.xml"
+        - cd build/install
+        - mvn deploy -Dvtk.snapshots.repo=https://maven.pkg.github.com/kitware/vtk -Dvtk.snapshots.repo.id=github
+
+    environment:
+        name: maven-upload
diff --git a/Wrapping/Java/Maven/pom.xml.in b/Wrapping/Java/Maven/pom.xml.in
index d197003608e85d05d71d412b5535569572a8c554..ea79176bf337c9d5cfd0d2ec6653fcec4cacb9d2 100644
--- a/Wrapping/Java/Maven/pom.xml.in
+++ b/Wrapping/Java/Maven/pom.xml.in
@@ -183,6 +183,9 @@
             <goals>
               <goal>sign</goal>
             </goals>
+            <configuration>
+              <signer>bc</signer>
+            </configuration>
           </execution>
         </executions>
       </plugin>