diff --git a/.appveyor.yml b/.appveyor.yml
deleted file mode 100644
index 9b36f8e7a3..0000000000
--- a/.appveyor.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-cache:
- - C:\Users\appveyor\.m2 -> **\pom.xml
-
-install:
- - mkdir .jdk
- - curl -L "https://api.azul.com/zulu/download/community/v1.0/bundles/latest/binary/?jdk_version=17&ext=zip&os=windows&arch=x86&hw_bitness=64&javafx=false&bundle_type=jdk" -o .jdk/jdk.zip
- - unzip -d .jdk .jdk/jdk.zip
- - mv .jdk/*/* .jdk
- - .jdk\bin\java -version
- - SET JAVA_HOME=%CD%\.jdk
-
-build_script:
- # generation of Javadocs requires Java <= 6 (https://github.com/jacoco/jacoco/issues/110)
- - mvn -V -B -e verify -Djdk.version=6 -Dbytecode.version=5 --toolchains=.travis\appveyor-toolchains.xml
-
-artifacts:
- - path: jacoco\target\*.zip
diff --git a/.azure-pipelines/azure-pipelines.yml b/.azure-pipelines/azure-pipelines.yml
index da3f52c61f..893ec71b69 100644
--- a/.azure-pipelines/azure-pipelines.yml
+++ b/.azure-pipelines/azure-pipelines.yml
@@ -40,13 +40,15 @@ jobs:
JDK_VERSION: 19
JDK 20:
JDK_VERSION: 20
- JDK 20 with ECJ:
- JDK_VERSION: 20
- ECJ: true
JDK 21:
JDK_VERSION: 21
+ JDK 21 with ECJ:
+ JDK_VERSION: 21
+ ECJ: true
JDK 22:
JDK_VERSION: 22
+ JDK 23:
+ JDK_VERSION: 23
pool:
vmImage: 'ubuntu-20.04'
steps:
@@ -86,17 +88,17 @@ jobs:
export JAVA_HOME=$JAVA_HOME_17_X64
fi
if [[ "$BUILD_SOURCEBRANCH" == "refs/heads/master" && "$JDK_VERSION" == "5" ]]; then
- .maven/bin/mvn -V -B -e -f org.jacoco.build \
+ .maven/bin/mvn -V -B -e --no-transfer-progress -f org.jacoco.build \
verify -Djdk.version=$JDK_VERSION -Dbytecode.version=$JDK_VERSION \
deploy:deploy -DdeployAtEnd \
--toolchains=toolchains.xml --settings=.azure-pipelines/maven-settings.xml
elif [[ "$BUILD_SOURCEBRANCH" == "refs/heads/master" && "$JDK_VERSION" == "11" ]]; then
- .maven/bin/mvn -V -B -e -f org.jacoco.build \
+ .maven/bin/mvn -V -B -e --no-transfer-progress -f org.jacoco.build \
verify -Djdk.version=$JDK_VERSION -Dbytecode.version=$JDK_VERSION \
sonar:sonar \
--toolchains=toolchains.xml --settings=.azure-pipelines/maven-settings.xml
else
- .maven/bin/mvn -V -B -e \
+ .maven/bin/mvn -V -B -e --no-transfer-progress \
verify -Djdk.version=$JDK_VERSION -Dbytecode.version=$JDK_VERSION -Decj=${ECJ:-} \
--toolchains=toolchains.xml
fi
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 0000000000..51d2ae7554
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,18 @@
+version: 2
+updates:
+ - package-ecosystem: "github-actions"
+ directory: "/"
+ schedule:
+ interval: "weekly"
+ labels:
+ - "dependencies"
+ - "component: build"
+ - package-ecosystem: "maven"
+ directory: "/"
+ schedule:
+ interval: "daily"
+ labels:
+ - "dependencies"
+ - "component: core"
+ allow:
+ - dependency-name: "org.ow2.asm:*"
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000000..980990658f
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,90 @@
+name: CI
+on:
+ - push
+ - pull_request
+jobs:
+ Linux:
+ strategy:
+ fail-fast: false
+ matrix:
+ include:
+ - jdk: 8
+ - jdk: 11
+ - jdk: 17
+ - jdk: 21
+ name: JDK ${{ matrix.jdk }}
+ runs-on: ubuntu-20.04
+ steps:
+ - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+ - uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1
+ with:
+ distribution: 'zulu'
+ java-version: |
+ ${{ matrix.jdk }}
+ 17
+ - name: 'Generate toolchains.xml'
+ env:
+ JDK_VERSION: ${{ matrix.jdk }}
+ JDK_HOME_VARIABLE_NAME: JAVA_HOME_${{ matrix.jdk }}_X64
+ run: |
+ echo "
+
+
+ jdk
+
+ $JDK_VERSION
+ $JDK_VERSION
+
+
+ ${!JDK_HOME_VARIABLE_NAME}
+
+
+
+ " > toolchains.xml
+ - name: 'Build'
+ run: |
+ mvn -V -B -e --no-transfer-progress \
+ verify -Djdk.version=${{ matrix.jdk }} -Dbytecode.version=${{ matrix.jdk }} \
+ --toolchains=toolchains.xml
+ Windows:
+ runs-on: windows-2022
+ steps:
+ - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+ - uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1
+ with:
+ distribution: 'zulu'
+ java-version: |
+ 6
+ 17
+ - name: 'Generate toolchains.xml'
+ env:
+ JDK_VERSION: 6
+ JDK_HOME_VARIABLE_NAME: JAVA_HOME_6_X64
+ shell: bash
+ run: |
+ echo "
+
+
+ jdk
+
+ $JDK_VERSION
+ $JDK_VERSION
+
+
+ ${!JDK_HOME_VARIABLE_NAME}
+
+
+
+ " > toolchains.xml
+ - name: 'Build'
+ shell: bash
+ run: |
+ mvn -V -B -e --no-transfer-progress \
+ verify -Djdk.version=6 -Dbytecode.version=5 \
+ --toolchains=toolchains.xml
+ - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
+ id: artifact-upload-step
+ with:
+ name: jacoco
+ path: jacoco/target/*.zip
+ if-no-files-found: error
diff --git a/.travis/appveyor-toolchains.xml b/.travis/appveyor-toolchains.xml
deleted file mode 100644
index 79fae7dd98..0000000000
--- a/.travis/appveyor-toolchains.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
- jdk
-
- java16
- 6
- oracle
-
-
- C:\Program Files\Java\jdk1.6.0
-
-
-
-
diff --git a/LICENSE.md b/LICENSE.md
index 757dbf4afb..0c2e74523f 100644
--- a/LICENSE.md
+++ b/LICENSE.md
@@ -1,7 +1,7 @@
License
=======
-Copyright (c) 2009, 2023 Mountainminds GmbH & Co. KG and Contributors
+Copyright (c) 2009, 2024 Mountainminds GmbH & Co. KG and Contributors
The JaCoCo Java Code Coverage Library and all included documentation is made
available by Mountainminds GmbH & Co. KG, Munich. Except indicated below, the
diff --git a/README.md b/README.md
index d2886deb6a..03681b257f 100644
--- a/README.md
+++ b/README.md
@@ -2,16 +2,15 @@ JaCoCo Java Code Coverage Library
=================================
[](https://dev.azure.com/jacoco-org/JaCoCo/_build/latest?definitionId=1&branchName=master)
-[](https://ci.appveyor.com/project/JaCoCo/jacoco/branch/master)
[](http://search.maven.org/#search|ga|1|g%3Aorg.jacoco)
JaCoCo is a free Java code coverage library distributed under the Eclipse Public
-License. Check the [project homepage](http://www.jacoco.org/jacoco)
-for downloads, documentation and feedback.
+License.
-Please use our [mailing list](https://groups.google.com/forum/?fromgroups=#!forum/jacoco)
-for questions regarding JaCoCo which are not already covered by the
-[extensive documentation](http://www.jacoco.org/jacoco/trunk/doc/).
+## Starting Points
-Note: We do not answer general questions in the project's issue tracker. Please use our [mailing list](https://groups.google.com/forum/?fromgroups=#!forum/jacoco) for this.
--------------------------------------------------------------------------
+* I want to use JaCoCo → [Download](https://www.jacoco.org/jacoco/), [Maven](https://www.jacoco.org/jacoco/trunk/doc/maven.html), [Ant](https://www.jacoco.org/jacoco/trunk/doc/ant.html), [CLI](https://www.jacoco.org/jacoco/trunk/doc/cli.html), [Other](https://www.jacoco.org/jacoco/trunk/doc/integrations.html)
+* I want to know how JaCoCo works → [Documentation](http://www.jacoco.org/jacoco/trunk/doc/)
+* I have a question → [FAQ](http://www.jacoco.org/jacoco/trunk/doc/faq.html), [Documentation](http://www.jacoco.org/jacoco/trunk/doc/), [User Forum](https://groups.google.com/forum/?fromgroups=#!forum/jacoco)
+* I found a bug → [Bug Report](https://github.com/jacoco/jacoco/issues/new/choose)
+* I have an idea → [User Forum](https://groups.google.com/forum/?fromgroups=#!forum/jacoco), [Feature Request](https://github.com/jacoco/jacoco/issues/new/choose)
diff --git a/jacoco-maven-plugin.test/it/it-check-fails-halt/pom.xml b/jacoco-maven-plugin.test/it/it-check-fails-halt/pom.xml
index c7221a1eac..2b58a34d1d 100644
--- a/jacoco-maven-plugin.test/it/it-check-fails-halt/pom.xml
+++ b/jacoco-maven-plugin.test/it/it-check-fails-halt/pom.xml
@@ -1,6 +1,6 @@
- 9.6
+ 9.7
1.9.16
2.0.28
4.13.1
@@ -352,11 +352,7 @@
org.apache.maven.plugins
maven-javadoc-plugin
-
- 3.0.1
+ 3.6.3
true
false
@@ -365,15 +361,7 @@
org.apache.maven.plugins
maven-plugin-plugin
- 3.6.0
-
-
-
- org.ow2.asm
- asm
- 7.1
-
-
+ 3.6.4
org.apache.maven.plugins
@@ -414,7 +402,7 @@
org.apache.maven.plugins
maven-site-plugin
- 3.3
+ 3.12.1
org.apache.maven.plugins
@@ -461,7 +449,7 @@
com.diffplug.spotless
spotless-maven-plugin
- 2.37.0
+ 2.41.1
@@ -554,9 +542,13 @@
src/**/*.java
- 4.28
+ 4.30
../org.jacoco.core/.settings/org.eclipse.jdt.core.prefs
+
+ java,javax,org,com,
+ true
+
@@ -608,7 +600,7 @@
-
+
@@ -794,67 +786,16 @@
-
- java14-bytecode
-
-
- bytecode.version
- 14
-
-
-
- 13
- 13
-
-
-
-
- java15-bytecode
-
-
- bytecode.version
- 15
-
-
-
- 13
- 13
-
-
-
-
- java16-bytecode
-
-
- bytecode.version
- 16
-
-
-
- 13
- 13
-
-
-
-
- java17-bytecode
-
-
- bytecode.version
- 17
-
-
-
- 13
- 13
-
-
-
java18-bytecode
@@ -864,8 +805,8 @@
- 13
- 13
+ 17
+ 17
@@ -878,8 +819,8 @@
- 13
- 13
+ 17
+ 17
@@ -892,8 +833,8 @@
- 13
- 13
+ 17
+ 17
@@ -906,8 +847,8 @@
- 13
- 13
+ 17
+ 17
@@ -920,8 +861,22 @@
- 13
- 13
+ 17
+ 17
+
+
+
+
+ java23-bytecode
+
+
+ bytecode.version
+ 23
+
+
+
+ 17
+ 17
@@ -945,7 +900,7 @@
org.eclipse.jdt
ecj
- 3.34.0
+ 3.37.0
org.codehaus.plexus
diff --git a/org.jacoco.cli.test/pom.xml b/org.jacoco.cli.test/pom.xml
index 71e110325d..28bdfc1cdd 100644
--- a/org.jacoco.cli.test/pom.xml
+++ b/org.jacoco.cli.test/pom.xml
@@ -1,6 +1,6 @@
+ 13
+ 13
+
+
+ ../org.jacoco.core.test.validation.kotlin
+ ../org.jacoco.core.test.validation.java7
+ ../org.jacoco.core.test.validation.java8
+ ../org.jacoco.core.test.validation.groovy
+ ../org.jacoco.core.test.validation.scala
+
+
+
java14-bytecode
@@ -351,7 +375,7 @@
16
-
+
16
18
@@ -379,7 +403,7 @@
16
-
+
16
19
@@ -407,7 +431,7 @@
16
-
+
16
20
@@ -435,7 +459,7 @@
16
-
+
16
21
@@ -449,9 +473,7 @@
../org.jacoco.core.test.validation.java16
../org.jacoco.core.test.validation.java21
../org.jacoco.core.test.validation.groovy
-
@@ -466,7 +488,7 @@
16
-
+
16
22
@@ -479,12 +501,41 @@
../org.jacoco.core.test.validation.java14
../org.jacoco.core.test.validation.java16
../org.jacoco.core.test.validation.java21
-
-
+ 16
+
+ 16
+
+ 23
+ 23
+
+
+ ../org.jacoco.core.test.validation.kotlin
+ ../org.jacoco.core.test.validation.java7
+ ../org.jacoco.core.test.validation.java8
+ ../org.jacoco.core.test.validation.java14
+ ../org.jacoco.core.test.validation.java16
+ ../org.jacoco.core.test.validation.java21
+
+ ../org.jacoco.core.test.validation.scala
diff --git a/org.jacoco.core.test/pom.xml b/org.jacoco.core.test/pom.xml
index aa1ee56c73..0124bf70f3 100644
--- a/org.jacoco.core.test/pom.xml
+++ b/org.jacoco.core.test/pom.xml
@@ -1,6 +1,6 @@