diff --git a/.github/workflows/build.yml b/.github/workflows/pr-and-push.yml similarity index 81% rename from .github/workflows/build.yml rename to .github/workflows/pr-and-push.yml index 37921f965..53610930f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/pr-and-push.yml @@ -1,7 +1,7 @@ -name: Build +name: PR and push actions on: pull_request: - branches: [ main ] + branches: [ "**" ] types: [ opened, synchronize ] push: branches: [ main ] @@ -10,14 +10,14 @@ on: - cron: "0 0 * * 0" jobs: - test: - name: JDK ${{ matrix.java-version }} on ${{ matrix.os }} - runs-on: ${{ matrix.os }} + build: + name: Build - JDK ${{ matrix.java-version }} - ${{ matrix.os }} + runs-on: ${{ matrix.os }}-latest strategy: fail-fast: false matrix: - os: [ 'ubuntu-latest' ] + os: [ ubuntu ] java-version: - 11 - 12 @@ -32,10 +32,10 @@ jobs: # - 20-ea build-script: [ './mvnw' ] include: - - os: windows-latest + - os: windows build-script: './mvnw.cmd' java-version: '11' - - os: macos-latest + - os: macos build-script: './mvnw' java-version: '11' @@ -85,9 +85,9 @@ jobs: **/target/site/jacoco/jacoco*.xml retention-days: 5 - report-test-results: - name: Report results - needs: [ test ] + report-test-results-and-coverage: + name: Report test results and coverage + needs: [ build ] runs-on: ubuntu-latest if: always() permissions: @@ -130,9 +130,17 @@ jobs: report_individual_runs: true time_unit: "milliseconds" - checkstyle: - name: Code style and licenses + javadocs: + name: Generate JavaDocs runs-on: ubuntu-latest + needs: [ report-test-results-and-coverage, compliance ] + if: github.event_name != 'schedule' + + permissions: + contents: read + pages: write + id-token: write + steps: - name: Checkout repository uses: actions/checkout@v3 @@ -141,28 +149,44 @@ jobs: uses: actions/setup-java@v3 with: distribution: 'zulu' + # We have to use >= 15 for now, as assertj causes JDK 14 and older to prevent linking + # documentation correctly. I have opened an issue on GitHub with AssertJ to discuss + # this being generated correctly: https://github.com/assertj/assertj-core/issues/2573. java-version: '19' cache: 'maven' - - name: Run checks + - name: Generate JavaDocs run: >- ./mvnw -B -T8 -U + -pl java-compiler-testing + --also-make --no-transfer-progress - -DskipTests=true + -Dmaven.test.skip=true + -Dcheckstyle.skip=true + -Dlicense.skip=true -Dstyle.color=always - -Dmaven.main.skip - -Dmaven.jar.skip - -Dmaven.resources.skip - -Dmaven.test.skip -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 - verify + clean compile javadoc:jar + + - name: Upload JavaDocs to GitHub Pages + if: github.ref == 'refs/heads/main' && github.event_name == 'push' + uses: actions/upload-pages-artifact@v1 + with: + path: java-compiler-testing/target/apidocs + + - name: Deploy JavaDocs to GitHub Pages + if: github.ref == 'refs/heads/main' && github.event_name == 'push' + id: deployment + uses: actions/deploy-pages@v1 - javadoc: - name: Code documentation + compliance: + name: Check Compliance runs-on: ubuntu-latest + needs: [ build ] + if: ${{ github.event_name != 'schedule' }} steps: - name: Checkout repository @@ -172,32 +196,21 @@ jobs: uses: actions/setup-java@v3 with: distribution: 'zulu' - # We have to use >= 15 for now, as assertj causes JDK 14 and older to prevent linking - # documentation correctly. I have opened an issue on GitHub with AssertJ to discuss - # this being generated correctly: https://github.com/assertj/assertj-core/issues/2573. java-version: '19' cache: 'maven' - - name: Generate JavaDoc documentation + - name: Run checks run: >- ./mvnw -B -T8 -U --no-transfer-progress - -Dmaven.test.skip=true - -Dcheckstyle.skip=true - -Dlicense.skip=true + -DskipTests=true -Dstyle.color=always + -Dmaven.main.skip + -Dmaven.jar.skip + -Dmaven.resources.skip + -Dmaven.test.skip -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 - clean compile javadoc:jar - - - name: Archive JavaDoc artifacts - uses: actions/upload-artifact@v3 - continue-on-error: true - if: success() - with: - name: javadocs - path: "**/target/apidocs/io.github.ascopes.*" - retention-days: 5 - + verify diff --git a/README.md b/README.md index 8220a7a92..9e5806c04 100644 --- a/README.md +++ b/README.md @@ -9,26 +9,37 @@ # java-compiler-testing -Facility for running compilation tests and annotation processing tests -for `javac` and other compliant compilers. +A framework for performing exhaustive integration testing against Java compilers in modern Java +libraries, with a focus on full JPMS support. -I developed this after several months of pulling out my hair trying to -find easy ways to integration test annotation processors for Java. While -one or two tools exist for Java 8, I have yet to find one that works -seamlessly with Java 11 and newer. +The _Java Compiler Testing_ API has a number of facilities for assisting in +testing anything related to the Java compiler. This includes Javac plugins and JSR-199 annotation +processors. -This module comes with full JPMS support. I decided to drop support for -Java 8 due to complexity around implementing this without the ability to -reference modules, and ideally this tool should be forward compatible to -prevent future issues for any projects deciding to use it. +All test cases are designed to be as stateless as possible, with facilities to produce +in-memory file systems (using Google's JIMFS API) or using OS-provided temporary directories. +All file system mechanisms are complimented with a fluent API that enables writing expressive +declarations without unnecessary boilerplate. + +Integration test cases can be written to cross-compile against a range of Java compiler +versions, with the ability to provide as much or as little configuration detail as you wish. +Additionally, APIs can be easily extended to integrate with any other JSR-199-compliant compiler +as required. + +Compilation results are complimented with a suite of assertion facilities that extend +the AssertJ API to assist in writing fluent and human-readable test cases for your code. Each of +these assertions comes with specially-developed human-readable error messages and formatting. + +Full JUnit5 integration is provided to help streamline the development process. **This module is still under development.** Any contributions or feedback are always welcome! ## Examples -```java +### In-memory code, using RAM disks for source directories +```java @DisplayName("Example tests") class ExampleTest { @@ -72,10 +83,64 @@ class ExampleTest { } ``` -Likewise, the following shows an example of compiling a multi-module style application with JPMS +### Compiling and testing with a custom annotation processor + +```java +import static io.github.ascopes.jct.assertions.JctAssertions.assertThatCompilation; +import static io.github.ascopes.jct.pathwrappers.RamDirectory.newRamDirectory; + +import io.github.ascopes.jct.compilers.JctCompiler; +import io.github.ascopes.jct.junit.JavacCompilerTest; + +import org.example.processor.JsonSchemaAnnotationProcessor; +import org.skyscreamer.jsonassert.JSONAssert; + +class JsonSchemaAnnotationProcessorTest { + + @JavacCompilerTest(minVersion = 11, maxVersion = 19) + void theJsonSchemaIsCreatedFromTheInputCode(JctCompiler compiler) { + // Given + var sources = newRamDirectory("sources") + .createDirectory("org", "example", "tests") + .copyContentsFrom("src", "test", "resources", "code", "schematest"); + + // When + var compilation = compiler + .addSources(sources) + .addAnnotationProcessors(new JsonSchemaAnnotationProcessor()) + .addAnnotationProcessorOptions("jsonschema.verbose=true") + .failOnWarnings(true) + .showDeprecationWarnings(true) + .compile(); + + // Then + assertThatCompilation(compilation) + .isSuccessfulWithoutWarnings(); + + assertThatCompilation(compilation) + .diagnostics().notes().singleElement() + .message().isEqualTo( + "Creating JSON schema in Java %s for package org.example.tests", + compiler.getRelease() + ); + + assertThatCompilation(compilation) + .classOutputs().packages() + .fileExists("json-schemas/UserSchema.json").contents() + .isNotEmpty() + .satisfies(contents -> JSONAssert.assertEquals(...)); + } +} +``` + +### Compiling multi-module sources + +The following shows an example of compiling a multi-module style application with JPMS support, running the Lombok annotation processor over the input. This assumes that the Lombok JAR is already on the classpath for the JUnit test runner. +Even Maven lacks native support for this, still! + ```java @DisplayName("Example tests") diff --git a/java-compiler-testing/pom.xml b/java-compiler-testing/pom.xml index e71f0d6cc..43c658136 100644 --- a/java-compiler-testing/pom.xml +++ b/java-compiler-testing/pom.xml @@ -13,6 +13,14 @@ java-compiler-testing + + + *.annotations, + *.impl, + *.utils, + + + com.google.code.findbugs diff --git a/java-compiler-testing/src/main/java/io/github/ascopes/jct/annotations/package-info.java b/java-compiler-testing/src/main/java/io/github/ascopes/jct/annotations/package-info.java index db70891fb..3a9613a9f 100644 --- a/java-compiler-testing/src/main/java/io/github/ascopes/jct/annotations/package-info.java +++ b/java-compiler-testing/src/main/java/io/github/ascopes/jct/annotations/package-info.java @@ -15,5 +15,13 @@ */ /** * JSR-305 annotations to assist in IDE integrations and Kotlin compiler support. + * + *

These components are part of the internal API and should not be used by external + * modules. As such, they are not covered by the semantic versioning policy and may change + * without notice. */ +@API(since = "0.0.1", status = Status.INTERNAL) package io.github.ascopes.jct.annotations; + +import org.apiguardian.api.API; +import org.apiguardian.api.API.Status; diff --git a/java-compiler-testing/src/main/java/io/github/ascopes/jct/assertions/DiagnosticAssert.java b/java-compiler-testing/src/main/java/io/github/ascopes/jct/assertions/DiagnosticAssert.java index 7a9fb0347..7f483501c 100644 --- a/java-compiler-testing/src/main/java/io/github/ascopes/jct/assertions/DiagnosticAssert.java +++ b/java-compiler-testing/src/main/java/io/github/ascopes/jct/assertions/DiagnosticAssert.java @@ -183,11 +183,7 @@ public AbstractStringAssert threadName() { * Get assertions for the stack trace of the location the diagnostic was reported to. * * @return the assertions for the stack trace. - * @deprecated I have put up a pull request for AssertJ to support this functionality in AssertJ - * Core. Once this is merged, this return type will be changed to use the AssertJ - * implementation. */ - @Deprecated(forRemoval = true) public StackTraceAssert stackTrace() { return new StackTraceAssert(actual.getStackTrace()); } diff --git a/java-compiler-testing/src/main/java/io/github/ascopes/jct/assertions/impl/package-info.java b/java-compiler-testing/src/main/java/io/github/ascopes/jct/assertions/impl/package-info.java index 5b998ac15..c30f26bff 100644 --- a/java-compiler-testing/src/main/java/io/github/ascopes/jct/assertions/impl/package-info.java +++ b/java-compiler-testing/src/main/java/io/github/ascopes/jct/assertions/impl/package-info.java @@ -15,5 +15,13 @@ */ /** * Various internal helper types for assertions. + * + *

These components are part of the internal API and should not be used by external + * modules. As such, they are not covered by the semantic versioning policy and may change + * without notice. */ +@API(since = "0.0.1", status = Status.INTERNAL) package io.github.ascopes.jct.assertions.impl; + +import org.apiguardian.api.API; +import org.apiguardian.api.API.Status; diff --git a/java-compiler-testing/src/main/java/io/github/ascopes/jct/assertions/package-info.java b/java-compiler-testing/src/main/java/io/github/ascopes/jct/assertions/package-info.java index e80e549e1..034ff13ee 100644 --- a/java-compiler-testing/src/main/java/io/github/ascopes/jct/assertions/package-info.java +++ b/java-compiler-testing/src/main/java/io/github/ascopes/jct/assertions/package-info.java @@ -16,4 +16,8 @@ /** * Assertions to perform on the result of a compilation. */ +@API(since = "0.0.1", status = Status.EXPERIMENTAL) package io.github.ascopes.jct.assertions; + +import org.apiguardian.api.API; +import org.apiguardian.api.API.Status; diff --git a/java-compiler-testing/src/main/java/io/github/ascopes/jct/compilers/impl/package-info.java b/java-compiler-testing/src/main/java/io/github/ascopes/jct/compilers/impl/package-info.java index 5d30aae54..32b5a7d15 100644 --- a/java-compiler-testing/src/main/java/io/github/ascopes/jct/compilers/impl/package-info.java +++ b/java-compiler-testing/src/main/java/io/github/ascopes/jct/compilers/impl/package-info.java @@ -15,5 +15,13 @@ */ /** * Implementation details for compiler integrations. + * + *

These components are part of the internal API and should not be used by external + * modules. As such, they are not covered by the semantic versioning policy and may change + * without notice. */ +@API(since = "0.0.1", status = Status.INTERNAL) package io.github.ascopes.jct.compilers.impl; + +import org.apiguardian.api.API; +import org.apiguardian.api.API.Status; diff --git a/java-compiler-testing/src/main/java/io/github/ascopes/jct/compilers/package-info.java b/java-compiler-testing/src/main/java/io/github/ascopes/jct/compilers/package-info.java index dd57af883..a79f06e54 100644 --- a/java-compiler-testing/src/main/java/io/github/ascopes/jct/compilers/package-info.java +++ b/java-compiler-testing/src/main/java/io/github/ascopes/jct/compilers/package-info.java @@ -16,4 +16,8 @@ /** * Compiler frontends that allow invoking compilers easily from tests. */ +@API(since = "0.0.1", status = Status.EXPERIMENTAL) package io.github.ascopes.jct.compilers; + +import org.apiguardian.api.API; +import org.apiguardian.api.API.Status; diff --git a/java-compiler-testing/src/main/java/io/github/ascopes/jct/containers/impl/package-info.java b/java-compiler-testing/src/main/java/io/github/ascopes/jct/containers/impl/package-info.java index db3e09e1a..749ff32d8 100644 --- a/java-compiler-testing/src/main/java/io/github/ascopes/jct/containers/impl/package-info.java +++ b/java-compiler-testing/src/main/java/io/github/ascopes/jct/containers/impl/package-info.java @@ -15,5 +15,13 @@ */ /** * Internal implementations of containers and container groups. + * + *

These components are part of the internal API and should not be used by external + * modules. As such, they are not covered by the semantic versioning policy and may change + * without notice. */ +@API(since = "0.0.1", status = Status.INTERNAL) package io.github.ascopes.jct.containers.impl; + +import org.apiguardian.api.API; +import org.apiguardian.api.API.Status; diff --git a/java-compiler-testing/src/main/java/io/github/ascopes/jct/containers/package-info.java b/java-compiler-testing/src/main/java/io/github/ascopes/jct/containers/package-info.java index e50015849..8c7212d9f 100644 --- a/java-compiler-testing/src/main/java/io/github/ascopes/jct/containers/package-info.java +++ b/java-compiler-testing/src/main/java/io/github/ascopes/jct/containers/package-info.java @@ -16,4 +16,8 @@ /** * Containers used to integrate with the JSR-199 API in a modular way. */ +@API(since = "0.0.1", status = Status.EXPERIMENTAL) package io.github.ascopes.jct.containers; + +import org.apiguardian.api.API; +import org.apiguardian.api.API.Status; diff --git a/java-compiler-testing/src/main/java/io/github/ascopes/jct/diagnostics/package-info.java b/java-compiler-testing/src/main/java/io/github/ascopes/jct/diagnostics/package-info.java index 37a9bdd17..d32de3e74 100644 --- a/java-compiler-testing/src/main/java/io/github/ascopes/jct/diagnostics/package-info.java +++ b/java-compiler-testing/src/main/java/io/github/ascopes/jct/diagnostics/package-info.java @@ -16,4 +16,8 @@ /** * Support for collecting and representing diagnostics from compiler implementations. */ +@API(since = "0.0.1", status = Status.EXPERIMENTAL) package io.github.ascopes.jct.diagnostics; + +import org.apiguardian.api.API; +import org.apiguardian.api.API.Status; diff --git a/java-compiler-testing/src/main/java/io/github/ascopes/jct/ex/package-info.java b/java-compiler-testing/src/main/java/io/github/ascopes/jct/ex/package-info.java index eb5f50025..7777cae3a 100644 --- a/java-compiler-testing/src/main/java/io/github/ascopes/jct/ex/package-info.java +++ b/java-compiler-testing/src/main/java/io/github/ascopes/jct/ex/package-info.java @@ -16,4 +16,8 @@ /** * Exceptions used within this API. */ +@API(since = "0.0.1", status = Status.EXPERIMENTAL) package io.github.ascopes.jct.ex; + +import org.apiguardian.api.API; +import org.apiguardian.api.API.Status; diff --git a/java-compiler-testing/src/main/java/io/github/ascopes/jct/junit/package-info.java b/java-compiler-testing/src/main/java/io/github/ascopes/jct/junit/package-info.java index 657aac18e..19a2770d6 100644 --- a/java-compiler-testing/src/main/java/io/github/ascopes/jct/junit/package-info.java +++ b/java-compiler-testing/src/main/java/io/github/ascopes/jct/junit/package-info.java @@ -16,4 +16,8 @@ /** * Additional functionality to simplify writing tests with Junit. */ +@API(since = "0.0.1", status = Status.EXPERIMENTAL) package io.github.ascopes.jct.junit; + +import org.apiguardian.api.API; +import org.apiguardian.api.API.Status; diff --git a/java-compiler-testing/src/main/java/io/github/ascopes/jct/package-info.java b/java-compiler-testing/src/main/java/io/github/ascopes/jct/package-info.java index c608e6e62..20bb4c39f 100644 --- a/java-compiler-testing/src/main/java/io/github/ascopes/jct/package-info.java +++ b/java-compiler-testing/src/main/java/io/github/ascopes/jct/package-info.java @@ -14,12 +14,14 @@ * limitations under the License. */ /** - * Tools for writing tests involving the Java compiler. + * Root package for the JCT library. */ - +@API(since = "0.0.1", status = Status.EXPERIMENTAL) @NonNullApi @NonNullImpl package io.github.ascopes.jct; import io.github.ascopes.jct.annotations.NonNullApi; import io.github.ascopes.jct.annotations.NonNullImpl; +import org.apiguardian.api.API; +import org.apiguardian.api.API.Status; diff --git a/java-compiler-testing/src/main/java/io/github/ascopes/jct/pathwrappers/impl/package-info.java b/java-compiler-testing/src/main/java/io/github/ascopes/jct/pathwrappers/impl/package-info.java index 582ca56af..505b649e0 100644 --- a/java-compiler-testing/src/main/java/io/github/ascopes/jct/pathwrappers/impl/package-info.java +++ b/java-compiler-testing/src/main/java/io/github/ascopes/jct/pathwrappers/impl/package-info.java @@ -15,5 +15,13 @@ */ /** * Internal objects for handling paths. + * + *

These components are part of the internal API and should not be used by external + * modules. As such, they are not covered by the semantic versioning policy and may change + * without notice. */ +@API(since = "0.0.1", status = Status.INTERNAL) package io.github.ascopes.jct.pathwrappers.impl; + +import org.apiguardian.api.API; +import org.apiguardian.api.API.Status; diff --git a/java-compiler-testing/src/main/java/io/github/ascopes/jct/pathwrappers/package-info.java b/java-compiler-testing/src/main/java/io/github/ascopes/jct/pathwrappers/package-info.java index 3ffc25895..bc5176181 100644 --- a/java-compiler-testing/src/main/java/io/github/ascopes/jct/pathwrappers/package-info.java +++ b/java-compiler-testing/src/main/java/io/github/ascopes/jct/pathwrappers/package-info.java @@ -16,4 +16,8 @@ /** * Facilities for handling paths. */ +@API(since = "0.0.1", status = Status.EXPERIMENTAL) package io.github.ascopes.jct.pathwrappers; + +import org.apiguardian.api.API; +import org.apiguardian.api.API.Status; diff --git a/java-compiler-testing/src/main/java/io/github/ascopes/jct/utils/package-info.java b/java-compiler-testing/src/main/java/io/github/ascopes/jct/utils/package-info.java index 487b1ceed..0156fc6c0 100644 --- a/java-compiler-testing/src/main/java/io/github/ascopes/jct/utils/package-info.java +++ b/java-compiler-testing/src/main/java/io/github/ascopes/jct/utils/package-info.java @@ -16,6 +16,12 @@ /** * Internal shared utilities. * - *

Nothing in here is exposed in the public API. + *

These components are part of the internal API and should not be used by external + * modules. As such, they are not covered by the semantic versioning policy and may change + * without notice. */ +@API(since = "0.0.1", status = Status.INTERNAL) package io.github.ascopes.jct.utils; + +import org.apiguardian.api.API; +import org.apiguardian.api.API.Status; diff --git a/java-compiler-testing/src/main/java/module-info.java b/java-compiler-testing/src/main/java/module-info.java index 0dcf449e3..4a227ab80 100644 --- a/java-compiler-testing/src/main/java/module-info.java +++ b/java-compiler-testing/src/main/java/module-info.java @@ -13,8 +13,83 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + /** - * Java compiler testing facilities. + * A framework for performing exhaustive integration testing against Java compilers in modern Java + * libraries, with a focus on full JPMS support. + * + *

The Java Compiler Testing API has a number of facilities for assisting in testing + * anything related to the Java compiler. This includes Javac plugins and JSR-199 annotation + * processors. + * + *

All test cases are designed to be as stateless as possible, with facilities to produce + * {@link io.github.ascopes.jct.pathwrappers.RamDirectory in-memory file systems} (using Google's + * JIMFS API), or using + * {@link io.github.ascopes.jct.pathwrappers.TempDirectory OS-provided temporary directories}. All + * file system mechanisms are complimented with a fluent API that enables writing expressive + * declarations without unnecessary boilerplate. + * + *

Integration test cases can be written to cross-compile against a range of Java compiler + * versions, with the ability to provide as much or as little configuration detail as you wish. + * Additionally, APIs can be easily + * {@link io.github.ascopes.jct.compilers.AbstractJctCompiler extended} to integrate with any other + * JSR-199-compliant compiler as required. + * + *

Compilation results are complimented with a suite of + * {@link io.github.ascopes.jct.assertions.JctAssertions assertion} facilities that extend the + * AssertJ API to assist in writing fluent and human-readable test cases for your code. Each of + * these assertions comes with specially-developed human-readable error messages and formatting. + * + *

Full {@link io.github.ascopes.jct.junit.JavacCompilerTest JUnit5 integration} + * is provided to streamline the development process, letting you focus on your + * code rather than flaky test environments and dependency management.

+ * + *

+ *    import static io.github.ascopes.jct.assertions.JctAssertions.assertThatCompilation;
+ *    import static io.github.ascopes.jct.pathwrappers.RamDirectory.newRamDirectory;
+ *
+ *    import io.github.ascopes.jct.compilers.JctCompiler;
+ *    import io.github.ascopes.jct.junit.JavacCompilerTest;
+ *
+ *    import org.example.processor.JsonSchemaAnnotationProcessor;
+ *    import org.skyscreamer.jsonassert.JSONAssert;
+ *
+ *    class JsonSchemaAnnotationProcessorTest {
+ *      {@literal @JavacCompilerTest(minVersion=11, maxVersion=19)}
+ *      void theJsonSchemaIsCreatedFromTheInputCode(JctCompiler<?, ?> compiler) {
+ *        // Given
+ *        var sources = newRamDirectory("sources")
+ *            .createDirectory("org", "example", "tests")
+ *            .copyContentsFrom("src", "test", "resources", "code", "schematest");
+ *
+ *        // When
+ *        var compilation = compiler
+ *            .addSources(sources)
+ *            .addAnnotationProcessors(new JsonSchemaAnnotationProcessor())
+ *            .addAnnotationProcessorOptions("jsonschema.verbose=true")
+ *            .failOnWarnings(true)
+ *            .showDeprecationWarnings(true)
+ *            .compile();
+ *
+ *        // Then
+ *        assertThatCompilation(compilation)
+ *            .isSuccessfulWithoutWarnings();
+ *
+ *        assertThatCompilation(compilation)
+ *            .diagnostics().notes().singleElement()
+ *            .message().isEqualTo(
+ *                "Creating JSON schema in Java %s for package org.example.tests",
+ *                compiler.getRelease()
+ *            );
+ *
+ *        assertThatCompilation(compilation)
+ *            .classOutputs().packages()
+ *            .fileExists("json-schemas/UserSchema.json").contents()
+ *            .isNotEmpty()
+ *            .satisfies(contents -> JSONAssert.assertEquals(...));
+ *      }
+ *    }
+ * 
*/ module io.github.ascopes.jct { requires java.compiler; diff --git a/pom.xml b/pom.xml index c72b23017..46c1a95c0 100644 --- a/pom.xml +++ b/pom.xml @@ -90,6 +90,9 @@ UTF-8 + + + https://github.com/ascopes ${project.organization.url}/java-compiler-testing @@ -269,13 +272,20 @@ - + - 11 + 0.0.1 + true + ${javadoc-excluded-packages} https://javadoc.io/doc/com.google.jimfs/jimfs/${jimfs.version} + https://javadoc.io/doc/com.google.code.findbugs/jsr305/${jsr305.version} + https://javadoc.io/doc/org.apiguardian/apiguardian-api/${apiguardian.version} https://javadoc.io/doc/org.assertj/assertj-core/${assertj.version} + https://javadoc.io/doc/org.slf4j/slf4j-api/${slf4j.version} + https://junit.org/junit5/docs/${junit.version}/api + 11