Framework
spring-projects/spring-batch avatar
spring-projects/spring-batch

spring-batch: the quick start pins 6.0.5 and StackOverflow support stopped in January

Spring Batch is a framework for writing batch applications using Java and Spring

2,972 stars2,548 forksJavaApache-2.0

At a glance

What is it?
Spring Batch is the Java batch framework behind Spring's chunk and tasklet processing, and its readme is a news feed plus a two minute tutorial. Read closely, the tutorial teaches the older maintenance line, the one build command on the page builds documentation rather than the library, and the support channel moved off Stack Overflow eight months ago.
Who is it for?
Spring Batch is the right choice for a Java shop that already runs Spring and needs restartable, repository backed jobs rather than a scheduled script, and the readme is enough to decide that in a couple of minutes. It is a poor choice if you want the newest line, because the quick start pins the 6.0.5 maintenance release while 6.1.0 is still at milestones, so following the tutorial puts you a minor version behind the current work.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 1 day ago.
What is it written in?
Mainly Java, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on November 14, 2026, and from our analysis. They are not legal advice.

From daily snapshots

Star history

  • spring-projects/spring-batch2,972 ★ · +12
Star history
Repository2026-09-242026-11-14
spring-projects/spring-batch3k3k

12 Stars in the last 51 days, measured from the daily GitHub snapshot. Compare with other projects

Editorial analysis

The quick start pins 6.0.5 while the newest tags are 6.1.0 milestones

The two minute tutorial asks for a Maven based Java 17 or newer project and one dependency:

xml
<dependencies>
    <dependency>
        <groupId>org.springframework.batch</groupId>
        <artifactId>spring-batch-core</artifactId>
        <version>6.0.5</version>
    </dependency>
</dependencies>

That version is the 6.0 maintenance line. The release list above it has v6.1.0-M2 dated 2026-09-24 and v6.1.0-M1 dated 2026-08-21, so the newest artifacts in this repository are milestones of a minor version the tutorial does not mention. Two of those three tags were published thirteen seconds apart, v6.0.5 at 00:08:33 and v6.1.0-M1 at 00:08:46 on the same day, which is the signature of a maintenance release and a milestone cut together. The tag titles are inconsistent as well: the v6.1.0-M2 tag is titled 6.1.0-M2 without the v prefix, while v6.1.0-M1 and v6.0.5 carry it. A reader who wants the current stable line has to read the news list to work out which of the two 6.x tracks the tutorial is on.

Two supported lines and a milestone track are shipping at once

The news list at the top is where the support picture is, and it shows three tracks rather than one. The 6.0 line has gone 6.0.0 GA on November 19, 2025, then 6.0.1 in December, 6.0.2 in January 2026, 6.0.3 in March, 6.0.4 in June and 6.0.5 in August. Alongside it, the 5.2 line received 5.2.5 in March 2026 and 5.2.6 in June 2026, so a framework whose current major is six was still shipping patches to the previous minor line four months ago. On top of those, the 6.1.0 milestone track has produced M1 and M2. The blog post announcing 6.0.5 and 6.1.0-M1 is dated August 20, 2026 while the tags themselves carry August 21, so the announcement and the artifacts are a day apart. Nothing in the visible page states an end of life for 5.2.x, which is the one thing a reader choosing between lines would want.

The only build command on the page builds the documentation

The Building from Source section has a gap in the middle of its prose and then a single command. You clone with [email protected]:spring-projects/spring-batch.git, change into the directory, and the next sentence stops after two words before the command appears:

code
$ ./mvnw antora -pl spring-batch-docs

That is the Antora plugin against the spring-batch-docs module, and the sentence after it says the reference documentation can be found in spring-batch-docs/target/site. So the one build instruction published on the readme produces documentation, not a jar, and no compile or test command appears anywhere in the visible page. What the tree does contain is the module list a Maven reactor would use: spring-batch-core, spring-batch-infrastructure, spring-batch-integration, spring-batch-test, spring-batch-bom, spring-batch-docs and spring-batch-samples, alongside a root pom.xml, a release-train-settings.xml and the Maven wrapper with mvnw and mvnw.cmd.

Stack Overflow support ended in January 2026 and issues are for bugs only

The Getting Help section carries a dated policy change rather than a link. As of January 2026, the project does not provide support on Stack Overflow anymore, and questions or support requests should go to GitHub Discussions instead. The next line is firmer still: please do not create issues on the Issue Tracker for questions or support requests, because the issue tracker is to be kept exclusively for bug reports and feature requests. So there is one support channel and it is not the one most Java questions land in. The bug path has its own rules. Search the tracker before opening one, follow the bug report template, wrap pasted code and stack traces in Markdown escapes, and for a non trivial bug create a test case or a replicating project and attach it, as described in ISSUE_REPORTING.md. Security problems go to a separate security policy.

The expected output carries a placeholder token and the last line stops mid sentence

The tutorial prints what a first job looks like, and the log format is the interesting part. Every line has the logger class, then a dash, then the literal token COMMONS-LOGGING, then the message:

code
[main] INFO org.springframework.batch.core.launch.support.TaskExecutorJobLauncher -  COMMONS-LOGGING Job: [SimpleJob: [name=job]] launched with the following parameters: [{}]
[main] INFO org.springframework.batch.core.step.AbstractStep -  COMMONS-LOGGING Executing step: [step]
Hello world!
[main] INFO org.springframework.batch.core.step.AbstractStep -  COMMONS-LOGGING Step: [step] executed in 3ms

So the sample output has an unexplained marker in it, and the number anyone would look for is 3ms for the step. The launcher class named in the log is TaskExecutorJobLauncher, which sits in the launch support package, so the class that starts a job is not the class the tutorial tells you to run: you run the main method of HelloWorldJobConfiguration and the framework's own launcher appears in the log. The final log line on the page is cut off after and the following st.

The import list in the tutorial stops partway through the tenth line

The Java listing for the job configuration is visible for nine and a half lines. It starts with the Job, JobParameters, JobOperator and Step types from the core job and step packages, then EnableBatchProcessing from the configuration annotation package, then JobBuilder, JobRepository and StepBuilder, then RepeatStatus from the infrastructure repeat package, and the tenth line breaks off partway through the word for the framework. So the class body, the annotation that registers the job, the step definition and the tasklet that prints Hello world are not on the page, and a reader copying the listing gets a file that does not compile. What the surrounding prose does establish is the shape: a single step job whose only action is to print Hello world to standard output, launched by running the main method of the configuration class. For anything larger the page points at a separate guide.

The realistic tutorial is a file to database ETL and lives off the repository

The second getting started path is described as more realistic and it is a different shape of project. That guide shows a typical ETL batch job that reads data from a flat file, transforms it and writes it to a relational database, and it is a Spring Batch project based on Spring Boot rather than a plain Maven project. It is hosted as a Spring guide called Creating a Batch Service rather than living in this repository, and the repository's own answer to wanting more is a separate spring-batch-samples tree linked from the Samples section. So the readme's two paths are a hello world it barely shows and an ETL walkthrough it does not contain. The description of the framework itself sits between them: it is presented as a batch framework that builds on the productivity and POJO based approach of the Spring Framework, and as lightweight, while also being the thing that makes advanced enterprise services accessible when a job needs them.

The homepage is an http URL on the projects.spring.io domain

Two small facts about where this project points. The repository's homepage field is http://projects.spring.io/spring-batch/, an http URL on the projects.spring.io domain rather than a current docs host, while every documentation link in the readme body goes to spring.io instead: the getting started guide, the news posts, and the Creating a Batch Service guide. So the declared homepage and the links a reader actually follows are on different domains and different schemes. The repository licence is Apache-2.0 with the licence file named LICENSE.txt rather than LICENSE, which is also where the tree differs from most Maven projects, since there is no .mvn/ wrapper configuration listed beyond the directory and the wrapper scripts themselves. The default branch is main and the last push on it is dated 2026-10-02.

Editorial conclusion

Spring Batch is the right choice for a Java shop that already runs Spring and needs restartable, repository backed jobs rather than a scheduled script, and the readme is enough to decide that in a couple of minutes. It is a poor choice if you want the newest line, because the quick start pins the 6.0.5 maintenance release while 6.1.0 is still at milestones, so following the tutorial puts you a minor version behind the current work. Before starting, pick your line deliberately between 6.0.x, 6.1.0 milestones and the 5.2.x patches still shipping alongside 6.x. And note where questions now go: Stack Overflow support ended in January 2026 and the issue tracker is reserved for bugs and feature requests, so a usage question belongs in GitHub Discussions.

Frequently asked questions

what is spring batch

Spring Batch is a batch framework for Java and Spring, built on the productivity and POJO based approach of the Spring Framework. The readme positions it for developing batch applications and for accessing more advanced enterprise services from a job when necessary, and the repository is Apache-2.0 licensed under main.

What is Spring Batch used for?

The readme's own two tutorials are the answer it gives. The two minute one is a single step job that prints Hello world. The Getting Started Guide is described as a more realistic ETL batch job that reads data from a flat file, transforms it and writes it to a relational database, as a Spring Batch project based on Spring Boot.

How do I add Spring Batch to a Maven project?

Create a Maven based Java 17 or newer project and add the org.springframework.batch groupId with the spring-batch-core artifactId. The version the quick start shows is 6.0.5, which is the 6.0 maintenance line rather than the 6.1.0 milestones.

Where should I ask a Spring Batch question now?

GitHub Discussions. As of January 2026 the project does not provide support on Stack Overflow anymore, and the issue tracker is kept exclusively for bug reports and feature requests, so questions should not be filed there as issues.

Which Spring Batch versions are still being released?

Three tracks appear in the news list. The 6.0 line runs from 6.0.0 GA on November 19, 2025 through 6.0.5, the 6.1.0 milestone track has produced M1 and M2, and the 5.2 line received 5.2.5 in March 2026 and 5.2.6 in June 2026 alongside the 6.0 releases.

How do I build Spring Batch from source?

Clone with [email protected]:spring-projects/spring-batch.git and change into the directory. The only build command the readme gives is ./mvnw antora -pl spring-batch-docs, which builds the reference documentation into spring-batch-docs/target/site rather than compiling the library.

Official sources

  1. License: Apache-2.0
  2. Project website
  3. README
  4. Releases
  5. spring-projects/spring-batch on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/spring-projects-spring-batch.svg)](https://hysenlabs.com/projects/spring-projects-spring-batch)

Star history chart for your README

markdown
[![Star history](https://hysenlabs.com/chart/spring-projects-spring-batch.svg)](https://hysenlabs.com/projects/spring-projects-spring-batch)

Was this useful?