diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index e48dc56..d7f207c 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -1,24 +1,12 @@ -# For most projects, this workflow file will not need changing; you simply need -# to commit it to your repository. -# -# You may wish to alter this file to override the set of languages analyzed, -# or to provide custom queries or build logic. -# -# ******** NOTE ******** -# We have attempted to detect the languages in your repository. Please check -# the `language` matrix defined below to confirm you have the correct set of -# supported CodeQL languages. -# name: "CodeQL" on: push: branches: [ "main" ] pull_request: - # The branches below must be a subset of the branches above branches: [ "main" ] schedule: - - cron: '42 4 * * 3' + - cron: '16 16 * * 4' jobs: analyze: @@ -33,48 +21,28 @@ jobs: fail-fast: false matrix: language: [ 'java' ] - # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ] - # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support steps: - - name: Checkout repository - uses: actions/checkout@v3 - - - name: Setup Java JDK - uses: actions/setup-java@v3.5.1 - with: - distribution: 'temurin' - java-version: '17' + - name: Checkout repository + uses: actions/checkout@v3 - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v2 - with: - languages: ${{ matrix.language }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. - - # Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs - # queries: security-extended,security-and-quality + - name: Setup Java JDK + uses: actions/setup-java@v3.5.1 + with: + distribution: 'zulu' + java-version: '17' - - # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). - # If this step fails, then you should remove it and run the build manually (see below) - - name: Autobuild - uses: github/codeql-action/autobuild@v2 + - name: Initialize CodeQL + uses: github/codeql-action/init@v2 + with: + languages: ${{ matrix.language }} - # ℹī¸ Command-line programs to run using the OS shell. - # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun + - name: Build + run: | + ./gradlew --version + ./gradlew build --no-build-cache - # If the Autobuild fails above, remove it and uncomment the following three lines. - # modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance. - - # - run: | - # echo "Run, Build Application using script" - # ./location_of_script_within_repo/buildscript.sh - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 - with: - category: "/language:${{matrix.language}}" + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v2 + with: + category: "/language:${{matrix.language}}" diff --git a/build.gradle b/build.gradle index b098a33..59ddde0 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,8 @@ plugins { id "de.marcphilipp.nexus-publish" version "0.4.0" id "io.codearte.nexus-staging" version "0.21.1" - id "org.xbib.gradle.plugin.asciidoctor" version "2.5.2.0" + id "org.xbib.gradle.plugin.asciidoctor" version "2.5.2.2" + id "org.cyclonedx.bom" version "1.7.2" id "com.github.spotbugs" version "5.0.3" id "pmd" id "checkstyle" @@ -28,14 +29,15 @@ ext { } subprojects { - apply plugin: 'java-library' apply from: rootProject.file('gradle/ide/idea.gradle') apply from: rootProject.file('gradle/compile/java.gradle') apply from: rootProject.file('gradle/test/junit5.gradle') apply from: rootProject.file('gradle/repositories/maven.gradle') + apply from: rootProject.file('gradle/quality/spotbugs.gradle') apply from: rootProject.file('gradle/quality/checkstyle.gradle') apply from: rootProject.file('gradle/quality/pmd.gradle') - apply from: rootProject.file('gradle/quality/spotbugs.gradle') apply from: rootProject.file('gradle/publishing/publication.gradle') } apply from: rootProject.file('gradle/publishing/sonatype.gradle') +apply from: rootProject.file('gradle/quality/cyclonedx.gradle') + diff --git a/gradle/compile/java.gradle b/gradle/compile/java.gradle index d7a16da..8b86888 100644 --- a/gradle/compile/java.gradle +++ b/gradle/compile/java.gradle @@ -37,8 +37,10 @@ artifacts { tasks.withType(JavaCompile) { options.compilerArgs << '-Xlint:all' + options.encoding = 'UTF-8' } -javadoc { +tasks.withType(Javadoc) { options.addStringOption('Xdoclint:none', '-quiet') + options.encoding = 'UTF-8' } diff --git a/gradle/quality/cyclonedx.gradle b/gradle/quality/cyclonedx.gradle new file mode 100644 index 0000000..a6bf41b --- /dev/null +++ b/gradle/quality/cyclonedx.gradle @@ -0,0 +1,11 @@ +cyclonedxBom { + includeConfigs = [ 'runtimeClasspath' ] + skipConfigs = [ 'compileClasspath', 'testCompileClasspath' ] + projectType = "library" + schemaVersion = "1.4" + destination = file("build/reports") + outputName = "bom" + outputFormat = "json" + includeBomSerialNumber = true + componentVersion = "2.0.0" +} diff --git a/gradle/quality/pmd.gradle b/gradle/quality/pmd.gradle index f80d0b0..c9f6312 100644 --- a/gradle/quality/pmd.gradle +++ b/gradle/quality/pmd.gradle @@ -1,8 +1,8 @@ apply plugin: 'pmd' pmd { + toolVersion = "6.41.0" ignoreFailures = true consoleOutput = false - toolVersion = "6.41.0" - ruleSetFiles = rootProject.files('gradle/config/pmd/category/java/bestpractices.xml') + ruleSetFiles = rootProject.files('gradle/quality/pmd/category/java/bestpractices.xml') } diff --git a/settings.gradle b/settings.gradle index 6a0269c..1910142 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,3 +1,17 @@ +pluginManagement { + repositories { + mavenLocal() + mavenCentral { + metadataSources { + mavenPom() + artifact() + ignoreGradleMetadataRedirection() + } + } + gradlePluginPortal() + } +} + dependencyResolutionManagement { versionCatalogs { libs { @@ -21,7 +35,7 @@ dependencyResolutionManagement { library('datastructures-yaml-tiny', 'org.xbib', 'datastructures-yaml-tiny').versionRef('datastructures') library('mockito-core', 'org.mockito', 'mockito-core').version('4.6.1') library('mockito-inline', 'org.mockito', 'mockito-inline').version('4.6.1') - library('net', 'org.xbib', 'net').version('3.0.0') + library('net', 'org.xbib', 'net').version('3.0.1') library('woodstox', 'com.fasterxml.woodstox', 'woodstox-core').version('6.3.0') library('snakeyaml', 'org.yaml', 'snakeyaml').version('1.30') }