diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 640bfdb79..060be9d3c 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -22,7 +22,7 @@ jobs:
- uses: DeterminateSystems/magic-nix-cache-action@v13
- name: Main project tests
- run: nix develop .#jdk${{ matrix.java }} --command gradle test --no-daemon
+ run: nix develop .#jdk${{ matrix.java }} --command mvn --batch-mode test
docker_test:
runs-on: ubuntu-latest
@@ -62,6 +62,7 @@ jobs:
- uses: DeterminateSystems/magic-nix-cache-action@v13
+ - run: nix develop --command mvn --batch-mode -DskipTests install
- run: nix develop --command bazelisk build //... --//scip-javac:enabled=true
- run: nix develop --command bazelisk run scip-aggregator:bazel -- --sourceroot "$PWD"
- run: du -h index.scip
@@ -83,8 +84,8 @@ jobs:
- uses: DeterminateSystems/magic-nix-cache-action@v13
- - run: nix develop --command gradle :scip-java:installDist --no-daemon
- - run: echo "$PWD/scip-java/build/install/scip-java/bin" >> "$GITHUB_PATH"
+ - run: nix develop --command mvn --batch-mode -DskipTests install
+ - run: echo "$PWD/scip-java/target/install/scip-java/bin" >> "$GITHUB_PATH"
- name: Auto-index scip-java codebase
run: |
# shellcheck disable=SC2016
@@ -113,10 +114,10 @@ jobs:
- uses: DeterminateSystems/magic-nix-cache-action@v13
- name: scip-kotlinc tests
- run: nix develop --command gradle :scip-kotlinc:test --no-daemon
+ run: nix develop --command mvn --batch-mode -pl scip-kotlinc -am test
- name: Regenerate snapshots
- run: nix develop --command gradle :scip-snapshots:saveSnapshots --no-daemon
+ run: nix develop --command mvn --batch-mode -pl scip-snapshots -am -DskipTests -PsaveSnapshots verify
- name: Check snapshot drift
run: |
@@ -141,13 +142,13 @@ jobs:
- run: |
nix develop .#jdk${{ matrix.java }} --command \
- gradle --no-daemon :scip-java:installDist publishToMavenLocal
+ mvn --batch-mode -DskipTests install
SCIP_JAVA_VERSION="$(
- sed -n 's/^version:=//p' scip-java/build/install/scip-java/VERSION
+ sed -n 's/^version:=//p' scip-java/target/install/scip-java/VERSION
)"
test -n "$SCIP_JAVA_VERSION"
printf 'SCIP_JAVA_VERSION=%s\n' "$SCIP_JAVA_VERSION" >> "$GITHUB_ENV"
- printf 'SCIP_JAVA_CLI=%s\n' "$PWD/scip-java/build/install/scip-java/bin/scip-java" >> "$GITHUB_ENV"
+ printf 'SCIP_JAVA_CLI=%s\n' "$PWD/scip-java/target/install/scip-java/bin/scip-java" >> "$GITHUB_ENV"
- run: |
nix develop "$GITHUB_WORKSPACE#jdk${{ matrix.java }}" --command \
diff --git a/.gitignore b/.gitignore
index ce6f3c1a3..80b9cda0f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,6 +13,7 @@ build/
.lib/
dist/*
target/
+.flattened-pom.xml
lib_managed/
src_managed/
.bloop
diff --git a/BUILD.bazel b/BUILD.bazel
new file mode 100644
index 000000000..fc98c1c9a
--- /dev/null
+++ b/BUILD.bazel
@@ -0,0 +1 @@
+# Root Bazel package for the rules_jvm_external Maven lock file.
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 20b6d5f27..6903718bf 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -14,17 +14,18 @@ nix develop .#jdk17 # JDK 17
nix develop .#jdk21 # JDK 21
```
-This drops you into a shell with `gradle`, `maven`, `bazelisk`, `nodejs`,
+This drops you into a shell with `maven`, `gradle`, `bazelisk`, `nodejs`,
`yarn`, `git`, `jq`, etc. all pinned to the versions used in CI.
If you'd rather install tools manually, you'll need at least:
- `java`: any version should work
- `git`: any version should work
-- `gradle`: `brew install gradle`, or see
- [general installation guide](https://gradle.org/install/).
- `mvn`: `brew install maven`, or see
[general installation guide](https://www.baeldung.com/install-maven-on-windows-linux-mac).
+- `gradle`: `brew install gradle`, or see
+ [general installation guide](https://gradle.org/install/). The project build
+ is Maven-based, but the CLI integration tests still exercise Gradle projects.
## Project structure
@@ -43,21 +44,22 @@ These are the main components of the project.
interface.
- `scip-java/src/test`: build-tool integration tests and fixtures for the
`scip-java` command-line interface.
-- `settings.gradle.kts`: Gradle project layout.
-- `build.gradle.kts`: Gradle build definition.
-- `gradle/libs.versions.toml`: dependency and plugin versions.
+- `pom.xml`: Maven reactor, dependency versions, and shared plugin setup.
+- `*/pom.xml`: Maven module build definitions.
+- `build.gradle.kts`, `settings.gradle.kts`, `gradle/libs.versions.toml`: legacy
+ Gradle build files kept during the Maven migration experiment.
## Helpful commands
| Command | Where | Description |
| ------------------------------------------------------- | -------- | ----------------------------------------------------------------------- |
-| `gradle test --no-daemon` | terminal | Run all Gradle tests. |
-| `gradle :scip-java:test --no-daemon` | terminal | Run CLI build-tool integration tests (Gradle, Maven, SCIP config). |
-| `gradle :scip-kotlinc:test --no-daemon` | terminal | Run Kotlin compiler-plugin tests. |
-| `gradle :scip-snapshots:test --no-daemon` | terminal | Compare Java and Kotlin snapshot goldens. |
-| `gradle :scip-snapshots:saveSnapshots --no-daemon` | terminal | Regenerate Java and Kotlin snapshot goldens. |
-| `gradle :scip-java:installDist --no-daemon` | terminal | Build a local `scip-java` distribution under `scip-java/build/install/`. |
-| `gradle :scip-java:run --args='--cwd DIRECTORY'` | terminal | Run `scip-java` against a given Gradle/Maven build. |
+| `mvn --batch-mode test` | terminal | Run all Maven reactor tests. |
+| `mvn --batch-mode -pl scip-java -am test` | terminal | Run CLI build-tool integration tests (Gradle, Maven, SCIP config). |
+| `mvn --batch-mode -pl scip-kotlinc -am test` | terminal | Run Kotlin compiler-plugin tests. |
+| `mvn --batch-mode -pl scip-snapshots -am test` | terminal | Compare Java and Kotlin snapshot goldens. |
+| `mvn --batch-mode -pl scip-snapshots -am -DskipTests -PsaveSnapshots verify` | terminal | Regenerate Java and Kotlin snapshot goldens. |
+| `mvn --batch-mode -pl scip-java -am -DskipTests package` | terminal | Build a local `scip-java` distribution under `scip-java/target/install/`. |
+| `scip-java/target/install/scip-java/bin/scip-java --cwd DIRECTORY index` | terminal | Run `scip-java` against a given Gradle/Maven build after packaging. |
| `google-java-format --replace $(git ls-files '*.java')` | terminal | Format Java sources (from `nix develop`). Enforced by `nix flake check`. |
| `ktfmt --kotlinlang-style $(git ls-files '*.kt')` | terminal | Format Kotlin sources (from `nix develop`). Enforced by `nix flake check`. |
@@ -78,15 +80,15 @@ Next, follow
[these instructions](https://github.com/HPI-Information-Systems/Metanome/wiki/Installing-the-google-styleguide-settings-in-intellij-and-eclipse)
here to configure the Google Java formatter.
-Finally, run "File > Project From Existing Sources" to import the Gradle build
-into IntelliJ. Select the "Gradle" option if it asks you to choose a build
+Finally, run "File > Project From Existing Sources" to import the Maven build
+into IntelliJ. Select the "Maven" option if it asks you to choose a build
model.
-It's best to run tests from Gradle, not from the IntelliJ UI.
+It's best to run tests from Maven, not from the IntelliJ UI.
## Tests are written in Java with JUnit 5
-The Java tests use [JUnit 5](https://junit.org/junit5/) through Gradle's JUnit
+The Java tests use [JUnit 5](https://junit.org/junit5/) through Maven Surefire's
Platform support. The snapshot suite is a JUnit `@TestFactory` that emits one
dynamic test per generated document, comparing it against the committed goldens
under `scip-snapshots/expected`. Build-tool tests (`scip-java/src/test`) are
diff --git a/Dockerfile b/Dockerfile
index 45ae2c6b6..b10094654 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -17,7 +17,7 @@ RUN git config --global --add safe.directory *
COPY . .
-RUN gradle --no-daemon :scip-java:installDist && mkdir -p /app/scip-java && cp -R scip-java/build/install/scip-java/. /app/scip-java/
+RUN mvn --batch-mode -pl scip-java -am -DskipTests package && mkdir -p /app/scip-java && cp -R scip-java/target/install/scip-java/. /app/scip-java/
COPY ./bin/scip-java-docker-script.sh /usr/bin/scip-java
diff --git a/MODULE.bazel b/MODULE.bazel
index 15e6ff88e..5c2b942b9 100644
--- a/MODULE.bazel
+++ b/MODULE.bazel
@@ -13,6 +13,24 @@ maven.install(
"org.scip-code:scip-java-bindings:0.8.0",
],
known_contributing_modules = ["protobuf"],
- repositories = ["https://repo1.maven.org/maven2"],
+ repositories = [
+ "https://repo1.maven.org/maven2",
+ ],
+ lock_file = "//:maven_install.json",
+)
+
+# Keep changing in-repo tool artifacts unpinned: `mvn install` populates m2Local
+# before Bazel runs, avoiding duplicate Bazel-side build rules for these jars.
+maven.install(
+ name = "local_maven",
+ artifacts = [
+ "com.sourcegraph:scip-aggregator:0.0.0-SNAPSHOT",
+ "com.sourcegraph:scip-javac:jar:all:0.0.0-SNAPSHOT",
+ ],
+ fail_on_missing_checksum = False,
+ repositories = [
+ "m2Local",
+ "https://repo1.maven.org/maven2",
+ ],
)
-use_repo(maven, "maven")
+use_repo(maven, "maven", "local_maven")
diff --git a/examples/bazel-example/MODULE.bazel b/examples/bazel-example/MODULE.bazel
index 8b5427860..cea56b6a0 100644
--- a/examples/bazel-example/MODULE.bazel
+++ b/examples/bazel-example/MODULE.bazel
@@ -24,4 +24,16 @@ maven.install(
],
repositories = ["https://repo1.maven.org/maven2"],
)
-use_repo(maven, "maven")
+
+# This source-checkout example consumes scip-java's SNAPSHOT tool jars from
+# m2Local. Run `mvn -DskipTests install` at the repository root first.
+maven.install(
+ name = "local_maven",
+ fail_on_missing_checksum = False,
+ known_contributing_modules = ["scip_java"],
+ repositories = [
+ "m2Local",
+ "https://repo1.maven.org/maven2",
+ ],
+)
+use_repo(maven, "maven", "local_maven")
diff --git a/maven_install.json b/maven_install.json
new file mode 100644
index 000000000..d93dfa7d7
--- /dev/null
+++ b/maven_install.json
@@ -0,0 +1,386 @@
+{
+ "__AUTOGENERATED_FILE_DO_NOT_MODIFY_THIS_FILE_MANUALLY": "THERE_IS_NO_DATA_ONLY_ZUUL",
+ "__INPUT_ARTIFACTS_HASH": {
+ "com.google.code.findbugs:jsr305": 495355163,
+ "com.google.code.gson:gson": 597770368,
+ "com.google.errorprone:error_prone_annotations": -1035138750,
+ "com.google.guava:guava": 1943808618,
+ "com.google.j2objc:j2objc-annotations": 2003271689,
+ "com.google.protobuf:protobuf-java-util": 191882783,
+ "org.projectlombok:lombok": -845595129,
+ "org.scip-code:scip-java-bindings": 1938462494,
+ "repositories": -1949687017
+ },
+ "__RESOLVED_ARTIFACTS_HASH": {
+ "com.google.code.findbugs:jsr305": 870839855,
+ "com.google.code.gson:gson": -1575757252,
+ "com.google.errorprone:error_prone_annotations": 833623751,
+ "com.google.guava:failureaccess": -1890754729,
+ "com.google.guava:guava": -163533230,
+ "com.google.guava:listenablefuture": 1079558157,
+ "com.google.j2objc:j2objc-annotations": 248818742,
+ "com.google.protobuf:protobuf-java": -572820424,
+ "com.google.protobuf:protobuf-java-util": -1205947984,
+ "org.checkerframework:checker-qual": -1533199059,
+ "org.projectlombok:lombok": -861688038,
+ "org.scip-code:scip-java-bindings": -1084642134
+ },
+ "conflict_resolution": {
+ "com.google.errorprone:error_prone_annotations:2.5.1": "com.google.errorprone:error_prone_annotations:2.18.0"
+ },
+ "artifacts": {
+ "com.google.code.findbugs:jsr305": {
+ "shasums": {
+ "jar": "766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7"
+ },
+ "version": "3.0.2"
+ },
+ "com.google.code.gson:gson": {
+ "shasums": {
+ "jar": "d3999291855de495c94c743761b8ab5176cfeabe281a5ab0d8e8d45326fd703e"
+ },
+ "version": "2.8.9"
+ },
+ "com.google.errorprone:error_prone_annotations": {
+ "shasums": {
+ "jar": "9e6814cb71816988a4fd1b07a993a8f21bb7058d522c162b1de849e19bea54ae"
+ },
+ "version": "2.18.0"
+ },
+ "com.google.guava:failureaccess": {
+ "shasums": {
+ "jar": "a171ee4c734dd2da837e4b16be9df4661afab72a41adaf31eb84dfdaf936ca26"
+ },
+ "version": "1.0.1"
+ },
+ "com.google.guava:guava": {
+ "shasums": {
+ "jar": "bd7fa227591fb8509677d0d1122cf95158f3b8a9f45653f58281d879f6dc48c5"
+ },
+ "version": "32.0.1-jre"
+ },
+ "com.google.guava:listenablefuture": {
+ "shasums": {
+ "jar": "b372a037d4230aa57fbeffdef30fd6123f9c0c2db85d0aced00c91b974f33f99"
+ },
+ "version": "9999.0-empty-to-avoid-conflict-with-guava"
+ },
+ "com.google.j2objc:j2objc-annotations": {
+ "shasums": {
+ "jar": "f02a95fa1a5e95edb3ed859fd0fb7df709d121a35290eff8b74dce2ab7f4d6ed"
+ },
+ "version": "2.8"
+ },
+ "com.google.protobuf:protobuf-java": {
+ "shasums": {
+ "jar": "780e269712d59ae34b87b702ce26aede7982804299dd56a65aa84bda6c145268"
+ },
+ "version": "4.34.2"
+ },
+ "com.google.protobuf:protobuf-java-util": {
+ "shasums": {
+ "jar": "a1464cbd83cdcc28dd648bc50b9f1e365aff4308a6481aae2aa9a2a777d6b0d5"
+ },
+ "version": "4.34.2"
+ },
+ "org.checkerframework:checker-qual": {
+ "shasums": {
+ "jar": "e316255bbfcd9fe50d165314b85abb2b33cb2a66a93c491db648e498a82c2de1"
+ },
+ "version": "3.33.0"
+ },
+ "org.projectlombok:lombok": {
+ "shasums": {
+ "jar": "ecef1581411d7a82cc04281667ee0bac5d7c0a5aae74cfc38430396c91c31831"
+ },
+ "version": "1.18.22"
+ },
+ "org.scip-code:scip-java-bindings": {
+ "shasums": {
+ "jar": "f022d8129f79ef443bb842b5248d01956157ec5ef6dbe8d8e091d493caa5cfba"
+ },
+ "version": "0.8.0"
+ }
+ },
+ "dependencies": {
+ "com.google.guava:guava": [
+ "com.google.code.findbugs:jsr305",
+ "com.google.errorprone:error_prone_annotations",
+ "com.google.guava:failureaccess",
+ "com.google.guava:listenablefuture",
+ "com.google.j2objc:j2objc-annotations",
+ "org.checkerframework:checker-qual"
+ ],
+ "com.google.protobuf:protobuf-java-util": [
+ "com.google.code.findbugs:jsr305",
+ "com.google.code.gson:gson",
+ "com.google.errorprone:error_prone_annotations",
+ "com.google.protobuf:protobuf-java"
+ ],
+ "org.scip-code:scip-java-bindings": [
+ "com.google.protobuf:protobuf-java"
+ ]
+ },
+ "packages": {
+ "com.google.code.findbugs:jsr305": [
+ "javax.annotation",
+ "javax.annotation.concurrent",
+ "javax.annotation.meta"
+ ],
+ "com.google.code.gson:gson": [
+ "com.google.gson",
+ "com.google.gson.annotations",
+ "com.google.gson.internal",
+ "com.google.gson.internal.bind",
+ "com.google.gson.internal.bind.util",
+ "com.google.gson.internal.reflect",
+ "com.google.gson.internal.sql",
+ "com.google.gson.reflect",
+ "com.google.gson.stream"
+ ],
+ "com.google.errorprone:error_prone_annotations": [
+ "com.google.errorprone.annotations",
+ "com.google.errorprone.annotations.concurrent"
+ ],
+ "com.google.guava:failureaccess": [
+ "com.google.common.util.concurrent.internal"
+ ],
+ "com.google.guava:guava": [
+ "com.google.common.annotations",
+ "com.google.common.base",
+ "com.google.common.base.internal",
+ "com.google.common.cache",
+ "com.google.common.collect",
+ "com.google.common.escape",
+ "com.google.common.eventbus",
+ "com.google.common.graph",
+ "com.google.common.hash",
+ "com.google.common.html",
+ "com.google.common.io",
+ "com.google.common.math",
+ "com.google.common.net",
+ "com.google.common.primitives",
+ "com.google.common.reflect",
+ "com.google.common.util.concurrent",
+ "com.google.common.xml",
+ "com.google.thirdparty.publicsuffix"
+ ],
+ "com.google.j2objc:j2objc-annotations": [
+ "com.google.j2objc.annotations"
+ ],
+ "com.google.protobuf:protobuf-java": [
+ "com.google.protobuf",
+ "com.google.protobuf.compiler"
+ ],
+ "com.google.protobuf:protobuf-java-util": [
+ "com.google.protobuf.util"
+ ],
+ "org.checkerframework:checker-qual": [
+ "org.checkerframework.checker.builder.qual",
+ "org.checkerframework.checker.calledmethods.qual",
+ "org.checkerframework.checker.compilermsgs.qual",
+ "org.checkerframework.checker.fenum.qual",
+ "org.checkerframework.checker.formatter.qual",
+ "org.checkerframework.checker.guieffect.qual",
+ "org.checkerframework.checker.i18n.qual",
+ "org.checkerframework.checker.i18nformatter.qual",
+ "org.checkerframework.checker.index.qual",
+ "org.checkerframework.checker.initialization.qual",
+ "org.checkerframework.checker.interning.qual",
+ "org.checkerframework.checker.lock.qual",
+ "org.checkerframework.checker.mustcall.qual",
+ "org.checkerframework.checker.nullness.qual",
+ "org.checkerframework.checker.optional.qual",
+ "org.checkerframework.checker.propkey.qual",
+ "org.checkerframework.checker.regex.qual",
+ "org.checkerframework.checker.signature.qual",
+ "org.checkerframework.checker.signedness.qual",
+ "org.checkerframework.checker.tainting.qual",
+ "org.checkerframework.checker.units.qual",
+ "org.checkerframework.common.aliasing.qual",
+ "org.checkerframework.common.initializedfields.qual",
+ "org.checkerframework.common.reflection.qual",
+ "org.checkerframework.common.returnsreceiver.qual",
+ "org.checkerframework.common.subtyping.qual",
+ "org.checkerframework.common.util.report.qual",
+ "org.checkerframework.common.value.qual",
+ "org.checkerframework.dataflow.qual",
+ "org.checkerframework.framework.qual"
+ ],
+ "org.projectlombok:lombok": [
+ "lombok",
+ "lombok.delombok.ant",
+ "lombok.experimental",
+ "lombok.extern.apachecommons",
+ "lombok.extern.flogger",
+ "lombok.extern.jackson",
+ "lombok.extern.java",
+ "lombok.extern.jbosslog",
+ "lombok.extern.log4j",
+ "lombok.extern.slf4j",
+ "lombok.javac.apt",
+ "lombok.launch"
+ ],
+ "org.scip-code:scip-java-bindings": [
+ "org.scip_code.scip"
+ ]
+ },
+ "repositories": {
+ "https://repo1.maven.org/maven2/": [
+ "com.google.code.findbugs:jsr305",
+ "com.google.code.gson:gson",
+ "com.google.errorprone:error_prone_annotations",
+ "com.google.guava:failureaccess",
+ "com.google.guava:guava",
+ "com.google.guava:listenablefuture",
+ "com.google.j2objc:j2objc-annotations",
+ "com.google.protobuf:protobuf-java",
+ "com.google.protobuf:protobuf-java-util",
+ "org.checkerframework:checker-qual",
+ "org.projectlombok:lombok",
+ "org.scip-code:scip-java-bindings"
+ ]
+ },
+ "services": {
+ "org.projectlombok:lombok": {
+ "javax.annotation.processing.Processor": [
+ "lombok.launch.AnnotationProcessorHider$AnnotationProcessor",
+ "lombok.launch.AnnotationProcessorHider$ClaimingProcessor"
+ ],
+ "lombok.core.LombokApp": [
+ "lombok.bytecode.PoolConstantsApp",
+ "lombok.bytecode.PostCompilerApp",
+ "lombok.core.Main$LicenseApp",
+ "lombok.core.Main$VersionApp",
+ "lombok.core.PublicApiCreatorApp",
+ "lombok.core.configuration.ConfigurationApp",
+ "lombok.core.runtimeDependencies.CreateLombokRuntimeApp",
+ "lombok.delombok.DelombokApp",
+ "lombok.installer.Installer$CommandLineInstallerApp",
+ "lombok.installer.Installer$CommandLineUninstallerApp",
+ "lombok.installer.Installer$GraphicalInstallerApp"
+ ],
+ "lombok.core.PostCompilerTransformation": [
+ "lombok.bytecode.PreventNullAnalysisRemover",
+ "lombok.bytecode.SneakyThrowsRemover"
+ ],
+ "lombok.core.runtimeDependencies.RuntimeDependencyInfo": [
+ "lombok.core.handlers.SneakyThrowsAndCleanupDependencyInfo"
+ ],
+ "lombok.eclipse.EclipseASTVisitor": [
+ "lombok.eclipse.handlers.HandleFieldDefaults",
+ "lombok.eclipse.handlers.HandleVal"
+ ],
+ "lombok.eclipse.EclipseAnnotationHandler": [
+ "lombok.eclipse.handlers.HandleAccessors",
+ "lombok.eclipse.handlers.HandleBuilder",
+ "lombok.eclipse.handlers.HandleBuilderDefault",
+ "lombok.eclipse.handlers.HandleCleanup",
+ "lombok.eclipse.handlers.HandleConstructor$HandleAllArgsConstructor",
+ "lombok.eclipse.handlers.HandleConstructor$HandleNoArgsConstructor",
+ "lombok.eclipse.handlers.HandleConstructor$HandleRequiredArgsConstructor",
+ "lombok.eclipse.handlers.HandleData",
+ "lombok.eclipse.handlers.HandleDelegate",
+ "lombok.eclipse.handlers.HandleEqualsAndHashCode",
+ "lombok.eclipse.handlers.HandleExtensionMethod",
+ "lombok.eclipse.handlers.HandleFieldNameConstants",
+ "lombok.eclipse.handlers.HandleGetter",
+ "lombok.eclipse.handlers.HandleHelper",
+ "lombok.eclipse.handlers.HandleJacksonized",
+ "lombok.eclipse.handlers.HandleLog$HandleCommonsLog",
+ "lombok.eclipse.handlers.HandleLog$HandleCustomLog",
+ "lombok.eclipse.handlers.HandleLog$HandleFloggerLog",
+ "lombok.eclipse.handlers.HandleLog$HandleJBossLog",
+ "lombok.eclipse.handlers.HandleLog$HandleJulLog",
+ "lombok.eclipse.handlers.HandleLog$HandleLog4j2Log",
+ "lombok.eclipse.handlers.HandleLog$HandleLog4jLog",
+ "lombok.eclipse.handlers.HandleLog$HandleSlf4jLog",
+ "lombok.eclipse.handlers.HandleLog$HandleXSlf4jLog",
+ "lombok.eclipse.handlers.HandleNonNull",
+ "lombok.eclipse.handlers.HandlePrintAST",
+ "lombok.eclipse.handlers.HandleSetter",
+ "lombok.eclipse.handlers.HandleSneakyThrows",
+ "lombok.eclipse.handlers.HandleStandardException",
+ "lombok.eclipse.handlers.HandleSuperBuilder",
+ "lombok.eclipse.handlers.HandleSynchronized",
+ "lombok.eclipse.handlers.HandleToString",
+ "lombok.eclipse.handlers.HandleUtilityClass",
+ "lombok.eclipse.handlers.HandleValue",
+ "lombok.eclipse.handlers.HandleWith",
+ "lombok.eclipse.handlers.HandleWithBy"
+ ],
+ "lombok.eclipse.handlers.EclipseSingularsRecipes$EclipseSingularizer": [
+ "lombok.eclipse.handlers.singulars.EclipseGuavaMapSingularizer",
+ "lombok.eclipse.handlers.singulars.EclipseGuavaSetListSingularizer",
+ "lombok.eclipse.handlers.singulars.EclipseGuavaTableSingularizer",
+ "lombok.eclipse.handlers.singulars.EclipseJavaUtilListSingularizer",
+ "lombok.eclipse.handlers.singulars.EclipseJavaUtilMapSingularizer",
+ "lombok.eclipse.handlers.singulars.EclipseJavaUtilSetSingularizer"
+ ],
+ "lombok.installer.IdeLocationProvider": [
+ "lombok.installer.eclipse.AngularIDELocationProvider",
+ "lombok.installer.eclipse.EclipseLocationProvider",
+ "lombok.installer.eclipse.JbdsLocationProvider",
+ "lombok.installer.eclipse.MyEclipseLocationProvider",
+ "lombok.installer.eclipse.RhcrLocationProvider",
+ "lombok.installer.eclipse.RhdsLocationProvider",
+ "lombok.installer.eclipse.STS4LocationProvider",
+ "lombok.installer.eclipse.STSLocationProvider"
+ ],
+ "lombok.javac.JavacASTVisitor": [
+ "lombok.javac.handlers.HandleFieldDefaults",
+ "lombok.javac.handlers.HandleVal"
+ ],
+ "lombok.javac.JavacAnnotationHandler": [
+ "lombok.javac.handlers.HandleAccessors",
+ "lombok.javac.handlers.HandleBuilder",
+ "lombok.javac.handlers.HandleBuilderDefault",
+ "lombok.javac.handlers.HandleBuilderDefaultRemove",
+ "lombok.javac.handlers.HandleBuilderRemove",
+ "lombok.javac.handlers.HandleCleanup",
+ "lombok.javac.handlers.HandleConstructor$HandleAllArgsConstructor",
+ "lombok.javac.handlers.HandleConstructor$HandleNoArgsConstructor",
+ "lombok.javac.handlers.HandleConstructor$HandleRequiredArgsConstructor",
+ "lombok.javac.handlers.HandleData",
+ "lombok.javac.handlers.HandleDelegate",
+ "lombok.javac.handlers.HandleEqualsAndHashCode",
+ "lombok.javac.handlers.HandleExtensionMethod",
+ "lombok.javac.handlers.HandleFieldNameConstants",
+ "lombok.javac.handlers.HandleGetter",
+ "lombok.javac.handlers.HandleHelper",
+ "lombok.javac.handlers.HandleJacksonized",
+ "lombok.javac.handlers.HandleLog$HandleCommonsLog",
+ "lombok.javac.handlers.HandleLog$HandleCustomLog",
+ "lombok.javac.handlers.HandleLog$HandleFloggerLog",
+ "lombok.javac.handlers.HandleLog$HandleJBossLog",
+ "lombok.javac.handlers.HandleLog$HandleJulLog",
+ "lombok.javac.handlers.HandleLog$HandleLog4j2Log",
+ "lombok.javac.handlers.HandleLog$HandleLog4jLog",
+ "lombok.javac.handlers.HandleLog$HandleSlf4jLog",
+ "lombok.javac.handlers.HandleLog$HandleXSlf4jLog",
+ "lombok.javac.handlers.HandleNonNull",
+ "lombok.javac.handlers.HandlePrintAST",
+ "lombok.javac.handlers.HandleSetter",
+ "lombok.javac.handlers.HandleSneakyThrows",
+ "lombok.javac.handlers.HandleStandardException",
+ "lombok.javac.handlers.HandleSuperBuilder",
+ "lombok.javac.handlers.HandleSuperBuilderRemove",
+ "lombok.javac.handlers.HandleSynchronized",
+ "lombok.javac.handlers.HandleToString",
+ "lombok.javac.handlers.HandleUtilityClass",
+ "lombok.javac.handlers.HandleValue",
+ "lombok.javac.handlers.HandleWith",
+ "lombok.javac.handlers.HandleWithBy"
+ ],
+ "lombok.javac.handlers.JavacSingularsRecipes$JavacSingularizer": [
+ "lombok.javac.handlers.singulars.JavacGuavaMapSingularizer",
+ "lombok.javac.handlers.singulars.JavacGuavaSetListSingularizer",
+ "lombok.javac.handlers.singulars.JavacGuavaTableSingularizer",
+ "lombok.javac.handlers.singulars.JavacJavaUtilListSingularizer",
+ "lombok.javac.handlers.singulars.JavacJavaUtilMapSingularizer",
+ "lombok.javac.handlers.singulars.JavacJavaUtilSetSingularizer"
+ ]
+ }
+ },
+ "version": "3"
+}
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 000000000..274c173fe
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,372 @@
+
+
+ 4.0.0
+
+ com.sourcegraph
+ scip-java-root
+ ${revision}
+ pom
+
+ scip-java
+ Java and Kotlin indexer for SCIP
+ https://github.com/sourcegraph/scip-java
+
+
+
+ Apache-2.0
+ http://www.apache.org/licenses/LICENSE-2.0
+
+
+
+
+
+ sourcegraph
+ Sourcegraph
+
+
+
+
+ scm:git:https://github.com/sourcegraph/scip-java.git
+ scm:git:ssh://git@github.com/sourcegraph/scip-java.git
+ https://github.com/sourcegraph/scip-java
+
+
+
+ scip-shared
+ scip-javac
+ scip-kotlinc
+ scip-aggregator
+ scip-maven-plugin
+ scip-gradle-plugin
+ scip-java
+ scip-snapshots/cases/java/common
+ scip-snapshots/cases/kotlin/common
+ scip-snapshots
+
+
+
+ 0.0.0-SNAPSHOT
+ UTF-8
+ UTF-8
+ 11
+
+ 5.0.3
+ 8.10
+ 5.11.4
+ 1.11.4
+ 0.7.1
+ 4.6.3
+ 2.2.0
+ 1.9.0
+ 1.18.22
+ 3.6.4
+ 3.6.3
+ 2.2.1
+ 4.34.2
+ 0.8.0
+
+ 2.1.0
+ 3.5.0
+ 1.6.0
+ 3.1.0
+ 3.13.0
+ 3.8.1
+ 3.1.3
+ 3.4.2
+ 3.15.1
+ 3.3.1
+ 3.6.0
+ 3.5.3
+ 0.6.1
+
+ --add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED
+ false
+
+
+
+
+
+ com.github.ajalt.clikt
+ clikt-jvm
+ ${clikt.version}
+
+
+ dev.gradleplugins
+ gradle-api
+ ${gradle.api.version}
+
+
+ dev.gradleplugins
+ gradle-test-kit
+ ${gradle.api.version}
+
+
+ org.junit.jupiter
+ junit-jupiter-api
+ ${junit.jupiter.version}
+
+
+ org.junit.jupiter
+ junit-jupiter-engine
+ ${junit.jupiter.version}
+
+
+ org.junit.platform
+ junit-platform-launcher
+ ${junit.platform.version}
+
+
+ dev.zacsweers.kctfork
+ core
+ ${kctfork.version}
+
+
+ io.kotest
+ kotest-assertions-core-jvm
+ ${kotest.version}
+
+
+ org.jetbrains.kotlin
+ kotlin-compiler-embeddable
+ ${kotlin.version}
+
+
+ org.jetbrains.kotlin
+ kotlin-reflect
+ ${kotlin.version}
+
+
+ org.jetbrains.kotlin
+ kotlin-scripting-common
+ ${kotlin.version}
+
+
+ org.jetbrains.kotlin
+ kotlin-scripting-dependencies
+ ${kotlin.version}
+
+
+ org.jetbrains.kotlin
+ kotlin-scripting-dependencies-maven
+ ${kotlin.version}
+
+
+ org.jetbrains.kotlin
+ kotlin-scripting-jvm
+ ${kotlin.version}
+
+
+ org.jetbrains.kotlin
+ kotlin-stdlib
+ ${kotlin.version}
+
+
+ org.jetbrains.kotlin
+ kotlin-test
+ ${kotlin.version}
+
+
+ org.jetbrains.kotlin
+ kotlin-test-junit5
+ ${kotlin.version}
+
+
+ org.jetbrains.kotlinx
+ kotlinx-serialization-json-jvm
+ ${kotlinx.serialization.version}
+
+
+ org.projectlombok
+ lombok
+ ${lombok.version}
+
+
+ org.apache.maven.plugin-tools
+ maven-plugin-annotations
+ ${maven.plugin.annotations.version}
+
+
+ org.apache.maven
+ maven-plugin-api
+ ${maven.plugin.api.version}
+
+
+ org.apache.maven
+ maven-project
+ ${maven.project.version}
+
+
+ org.scip-code
+ scip-java-bindings
+ ${scip.bindings.version}
+
+
+ org.scip-code
+ scip-kotlin-bindings
+ ${scip.bindings.version}
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ ${maven.compiler.plugin.version}
+
+
+ org.jetbrains.kotlin
+ kotlin-maven-plugin
+ ${kotlin.version}
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ ${maven.surefire.plugin.version}
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ ${maven.jar.plugin.version}
+
+
+ default-jar
+ none
+
+
+ jar-before-shade
+ process-classes
+
+ jar
+
+
+ true
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ ${maven.shade.plugin.version}
+
+
+ shade-all
+ process-classes
+
+ shade
+
+
+ true
+ all
+ false
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+ ${maven.dependency.plugin.version}
+
+
+ org.apache.maven.plugins
+ maven-resources-plugin
+ ${maven.resources.plugin.version}
+
+
+ org.apache.maven.plugins
+ maven-antrun-plugin
+ ${maven.antrun.plugin.version}
+
+
+ org.apache.maven.plugins
+ maven-plugin-plugin
+ ${maven.plugin.plugin.version}
+
+
+ org.apache.maven.plugins
+ maven-deploy-plugin
+ ${maven.deploy.plugin.version}
+
+
+ org.xolstice.maven.plugins
+ protobuf-maven-plugin
+ ${protobuf.maven.plugin.version}
+
+
+ org.codehaus.mojo
+ appassembler-maven-plugin
+ ${appassembler.plugin.version}
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ ${exec.plugin.version}
+
+
+ org.codehaus.mojo
+ flatten-maven-plugin
+ ${flatten.maven.plugin.version}
+
+
+
+
+
+
+ org.codehaus.mojo
+ flatten-maven-plugin
+
+ resolveCiFriendliesOnly
+ true
+
+
+
+ flatten
+ process-resources
+
+ flatten
+
+
+
+ flatten.clean
+ clean
+
+ clean
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ ${maven.compiler.release}
+ ${project.build.sourceEncoding}
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+ false
+ false
+
+
+
+ org.apache.maven.plugins
+ maven-deploy-plugin
+
+ ${maven.deploy.skip}
+
+
+
+
+
diff --git a/scip-aggregator/BUILD b/scip-aggregator/BUILD
index e48175189..bb19c7bb1 100644
--- a/scip-aggregator/BUILD
+++ b/scip-aggregator/BUILD
@@ -1,5 +1,6 @@
load("@com_google_protobuf//bazel:java_proto_library.bzl", "java_proto_library")
load("@com_google_protobuf//bazel:proto_library.bzl", "proto_library")
+load("@rules_jvm_external//:defs.bzl", "artifact")
load("@rules_java//java:defs.bzl", "java_binary", "java_library")
package(
@@ -10,7 +11,10 @@ java_binary(
name = "bazel",
main_class = "com.sourcegraph.scip_aggregator.BazelBuildTool",
runtime_deps = [
- ":scip-aggregator",
+ artifact(
+ "com.sourcegraph:scip-aggregator:0.0.0-SNAPSHOT",
+ repository_name = "local_maven",
+ ),
],
)
diff --git a/scip-aggregator/pom.xml b/scip-aggregator/pom.xml
new file mode 100644
index 000000000..3ea8562a5
--- /dev/null
+++ b/scip-aggregator/pom.xml
@@ -0,0 +1,71 @@
+
+
+ 4.0.0
+
+
+ com.sourcegraph
+ scip-java-root
+ ${revision}
+ ../pom.xml
+
+
+ scip-aggregator
+ scip-aggregator
+ Aggregates compiler-plugin SCIP shards into a single SCIP index
+
+
+
+
+ kr.motd.maven
+ os-maven-plugin
+ 1.7.1
+
+
+
+
+ org.xolstice.maven.plugins
+ protobuf-maven-plugin
+
+ ${project.basedir}/src/main/protobuf
+ com.google.protobuf:protoc:${protobuf.version}:exe:${os.detected.classifier}
+
+
+
+
+ compile
+
+
+
+
+
+
+
+
+
+ org.scip-code
+ scip-java-bindings
+
+
+ com.sourcegraph
+ scip-shared
+ ${project.version}
+
+
+ org.junit.jupiter
+ junit-jupiter-api
+ test
+
+
+ org.junit.jupiter
+ junit-jupiter-engine
+ test
+
+
+ org.junit.platform
+ junit-platform-launcher
+ test
+
+
+
diff --git a/scip-gradle-plugin/pom.xml b/scip-gradle-plugin/pom.xml
new file mode 100644
index 000000000..eda60aa5d
--- /dev/null
+++ b/scip-gradle-plugin/pom.xml
@@ -0,0 +1,45 @@
+
+
+ 4.0.0
+
+
+ com.sourcegraph
+ scip-java-root
+ ${revision}
+ ../pom.xml
+
+
+ scip-gradle-plugin
+ scip-gradle-plugin
+
+ true
+
+
+
+
+ dev.gradleplugins
+ gradle-api
+ provided
+
+
+ dev.gradleplugins
+ gradle-test-kit
+ provided
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+
+
+
+
diff --git a/scip-java/pom.xml b/scip-java/pom.xml
new file mode 100644
index 000000000..26b90d1df
--- /dev/null
+++ b/scip-java/pom.xml
@@ -0,0 +1,264 @@
+
+
+ 4.0.0
+
+
+ com.sourcegraph
+ scip-java-root
+ ${revision}
+ ../pom.xml
+
+
+ scip-java
+ scip-java
+ Java and Kotlin indexer for SCIP
+
+
+
+ com.sourcegraph
+ scip-aggregator
+ ${project.version}
+
+
+
+ com.sourcegraph
+ scip-javac
+ ${project.version}
+ all
+ provided
+ true
+
+
+ com.sourcegraph
+ scip-kotlinc
+ ${project.version}
+ all
+ provided
+ true
+
+
+ com.sourcegraph
+ scip-gradle-plugin
+ ${project.version}
+ all
+ provided
+ true
+
+
+ com.github.ajalt.clikt
+ clikt-jvm
+
+
+ org.jetbrains.kotlin
+ kotlin-stdlib
+
+
+ org.jetbrains.kotlin
+ kotlin-compiler-embeddable
+
+
+ org.jetbrains.kotlin
+ kotlin-scripting-common
+
+
+ org.jetbrains.kotlin
+ kotlin-scripting-jvm
+
+
+ org.jetbrains.kotlin
+ kotlin-scripting-dependencies
+
+
+ org.jetbrains.kotlin
+ kotlin-scripting-dependencies-maven
+
+
+ org.jetbrains.kotlinx
+ kotlinx-serialization-json-jvm
+
+
+ org.jetbrains.kotlin
+ kotlin-test
+ test
+
+
+ org.jetbrains.kotlin
+ kotlin-test-junit5
+ test
+
+
+ org.junit.jupiter
+ junit-jupiter-engine
+ test
+
+
+ org.junit.platform
+ junit-platform-launcher
+ test
+
+
+
+
+
+
+ src/main/resources
+
+
+ ${maven.multiModuleProjectDirectory}/gradle
+
+ javac-internals.properties
+
+
+
+ ${project.build.directory}/generated-resources/embedded
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+
+
+ copy-embedded-jars
+ generate-resources
+
+ copy
+
+
+
+
+ com.sourcegraph
+ scip-javac
+ ${project.version}
+ all
+ jar
+ ${project.build.directory}/generated-resources/embedded
+ scip-plugin.jar
+
+
+ com.sourcegraph
+ scip-gradle-plugin
+ ${project.version}
+ all
+ jar
+ ${project.build.directory}/generated-resources/embedded
+ gradle-plugin.jar
+
+
+ com.sourcegraph
+ scip-kotlinc
+ ${project.version}
+ all
+ jar
+ ${project.build.directory}/generated-resources/embedded
+ scip-kotlinc.jar
+
+
+
+
+
+
+
+ org.jetbrains.kotlin
+ kotlin-maven-plugin
+
+
+ compile
+ compile
+
+ compile
+
+
+ 11
+
+ ${project.basedir}/src/main/kotlin
+
+
+
+
+ test-compile
+ test-compile
+
+ test-compile
+
+
+ 11
+
+ ${project.basedir}/src/test/kotlin
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+
+ ${project.version}
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+ ${javac.jvm.options}
+
+ 11
+
+
+
+
+ org.codehaus.mojo
+ appassembler-maven-plugin
+
+
+ assemble-cli
+ package
+
+ assemble
+
+
+
+
+ ${project.build.directory}/install/scip-java
+ lib
+ bin
+
+
+ scip-java
+ com.sourcegraph.scip_java.ScipJava
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-antrun-plugin
+
+
+ write-distribution-version
+ package
+
+ run
+
+
+
+
+ version:=${project.version}
+
+
+
+
+
+
+
+
diff --git a/scip-javac/BUILD b/scip-javac/BUILD
index d2f80bd83..4cde13a0b 100644
--- a/scip-javac/BUILD
+++ b/scip-javac/BUILD
@@ -1,4 +1,5 @@
load("@bazel_skylib//rules:common_settings.bzl", "string_flag")
+load("@rules_jvm_external//:defs.bzl", "artifact")
load("@rules_java//java:defs.bzl", "java_library", "java_plugin")
package(
@@ -22,7 +23,10 @@ string_flag(
java_plugin(
name = "plugin",
deps = [
- ":scip-javac",
+ artifact(
+ "com.sourcegraph:scip-javac:jar:all:0.0.0-SNAPSHOT",
+ repository_name = "local_maven",
+ ),
],
)
diff --git a/scip-javac/pom.xml b/scip-javac/pom.xml
new file mode 100644
index 000000000..730dda91b
--- /dev/null
+++ b/scip-javac/pom.xml
@@ -0,0 +1,130 @@
+
+
+ 4.0.0
+
+
+ com.sourcegraph
+ scip-java-root
+ ${revision}
+ ../pom.xml
+
+
+ scip-javac
+ scip-javac
+ A javac plugin to emit SCIP information
+
+
+
+ com.sourcegraph
+ scip-shared
+ ${project.version}
+
+
+ org.junit.jupiter
+ junit-jupiter-api
+ test
+
+
+ org.junit.jupiter
+ junit-jupiter-engine
+ test
+
+
+ org.junit.platform
+ junit-platform-launcher
+ test
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-antrun-plugin
+
+
+ create-empty-processorpath
+ generate-sources
+
+ run
+
+
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ true
+ none
+
+ -processorpath
+ ${project.build.directory}/empty-processorpath
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+ ${javac.jvm.options}
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+
+
+ shade-all
+
+
+
+ *:*
+
+ javax/**
+ com/sun/**
+ sun/**
+ META-INF/versions/9/module-info.class
+
+
+
+
+
+ com.google
+ com.sourcegraph.shaded.com.google
+
+
+ google
+ com.sourcegraph.shaded.google
+
+
+ org.relaxng
+ com.sourcegraph.shaded.relaxng
+
+
+ com.sourcegraph
+ com.sourcegraph.shaded.com.sourcegraph
+
+ com.sourcegraph.scip_javac.ScipPlugin
+ com.sourcegraph.scip_javac.InjectScipOptions
+
+
+
+
+
+
+
+
+
+
diff --git a/scip-kotlinc/pom.xml b/scip-kotlinc/pom.xml
new file mode 100644
index 000000000..73c8b0148
--- /dev/null
+++ b/scip-kotlinc/pom.xml
@@ -0,0 +1,145 @@
+
+
+ 4.0.0
+
+
+ com.sourcegraph
+ scip-java-root
+ ${revision}
+ ../pom.xml
+
+
+ scip-kotlinc
+ scip-kotlinc
+ A kotlinc plugin to emit SCIP information
+
+
+
+ com.sourcegraph
+ scip-shared
+ ${project.version}
+
+
+ org.scip-code
+ scip-kotlin-bindings
+
+
+ org.jetbrains.kotlin
+ kotlin-stdlib
+ provided
+
+
+ org.jetbrains.kotlin
+ kotlin-compiler-embeddable
+ provided
+
+
+ org.jetbrains.kotlin
+ kotlin-test
+ test
+
+
+ org.jetbrains.kotlin
+ kotlin-test-junit5
+ test
+
+
+ org.jetbrains.kotlin
+ kotlin-reflect
+ test
+
+
+ io.kotest
+ kotest-assertions-core-jvm
+ test
+
+
+ dev.zacsweers.kctfork
+ core
+ test
+
+
+ org.junit.jupiter
+ junit-jupiter-engine
+ test
+
+
+ org.junit.platform
+ junit-platform-launcher
+ test
+
+
+
+
+
+
+ org.jetbrains.kotlin
+ kotlin-maven-plugin
+
+
+ compile
+ compile
+
+ compile
+
+
+ 11
+
+ ${project.basedir}/src/main/kotlin
+
+
+ -Xcontext-parameters
+
+
+
+
+ test-compile
+ test-compile
+
+ test-compile
+
+
+ 11
+
+ ${project.basedir}/src/test/kotlin
+
+
+ -Xcontext-parameters
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+ -Xmx2g
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+
+
+ shade-all
+
+
+
+ com.intellij
+ org.jetbrains.kotlin.com.intellij
+
+
+
+
+
+
+
+
+
diff --git a/scip-maven-plugin/pom.xml b/scip-maven-plugin/pom.xml
new file mode 100644
index 000000000..5294f4fbe
--- /dev/null
+++ b/scip-maven-plugin/pom.xml
@@ -0,0 +1,71 @@
+
+
+ 4.0.0
+
+
+ com.sourcegraph
+ scip-java-root
+ ${revision}
+ ../pom.xml
+
+
+ scip-maven-plugin
+ maven-plugin
+ scip-maven-plugin
+ A Maven plugin that exports dependency metadata for scip-java
+
+
+
+ org.apache.maven
+ maven-plugin-api
+ provided
+
+
+ org.apache.maven
+ maven-project
+ provided
+
+
+ org.apache.maven.plugin-tools
+ maven-plugin-annotations
+ provided
+
+
+
+
+
+
+ src/main/resources
+
+ META-INF/maven/plugin.template.xml
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-plugin-plugin
+
+ sourcegraph
+ false
+
+
+
+ descriptor
+
+ descriptor
+
+
+
+ help-goal
+
+ helpmojo
+
+
+
+
+
+
+
diff --git a/scip-maven-plugin/src/main/java/com/sourcegraph/maven/DependencyWriterMojo.java b/scip-maven-plugin/src/main/java/com/sourcegraph/maven/DependencyWriterMojo.java
index 7ff2a74a2..cf44d29bc 100644
--- a/scip-maven-plugin/src/main/java/com/sourcegraph/maven/DependencyWriterMojo.java
+++ b/scip-maven-plugin/src/main/java/com/sourcegraph/maven/DependencyWriterMojo.java
@@ -16,9 +16,10 @@
@Mojo(
name = "sourcegraphDependencies",
- defaultPhase = LifecyclePhase.COMPILE,
+ defaultPhase = LifecyclePhase.GENERATE_RESOURCES,
requiresDependencyResolution = ResolutionScope.TEST,
- requiresProject = true)
+ requiresProject = true,
+ threadSafe = true)
public class DependencyWriterMojo extends AbstractMojo {
@Parameter(defaultValue = "${project}", required = true, readonly = true)
MavenProject project;
diff --git a/scip-shared/pom.xml b/scip-shared/pom.xml
new file mode 100644
index 000000000..d90693f2a
--- /dev/null
+++ b/scip-shared/pom.xml
@@ -0,0 +1,24 @@
+
+
+ 4.0.0
+
+
+ com.sourcegraph
+ scip-java-root
+ ${revision}
+ ../pom.xml
+
+
+ scip-shared
+ scip-shared
+ Shared SCIP utilities used by scip-java compiler plugins
+
+
+
+ org.scip-code
+ scip-java-bindings
+
+
+
diff --git a/scip-snapshots/README.md b/scip-snapshots/README.md
index 1da6073c1..538af89fb 100644
--- a/scip-snapshots/README.md
+++ b/scip-snapshots/README.md
@@ -20,5 +20,6 @@ expected/
version-specific cases when a fixture needs newer language features, for example
`cases/java/release-17`, `cases/java/release-21`, or `cases/kotlin/kotlin-2.2`.
-Run `gradle :scip-snapshots:test` to compare goldens and
-`gradle :scip-snapshots:saveSnapshots` to regenerate them.
+Run `mvn --batch-mode -pl scip-snapshots -am test` to compare goldens and
+`mvn --batch-mode -pl scip-snapshots -am -DskipTests -PsaveSnapshots verify` to
+regenerate them.
diff --git a/scip-snapshots/cases/java/common/pom.xml b/scip-snapshots/cases/java/common/pom.xml
new file mode 100644
index 000000000..50f5b678e
--- /dev/null
+++ b/scip-snapshots/cases/java/common/pom.xml
@@ -0,0 +1,86 @@
+
+
+ 4.0.0
+
+
+ com.sourcegraph
+ scip-java-root
+ ${revision}
+ ../../../../pom.xml
+
+
+ scip-snapshots-java-common
+ scip-snapshots-java-common
+
+ true
+
+
+
+
+ com.sourcegraph
+ scip-javac
+ ${project.version}
+ all
+ provided
+
+
+ org.projectlombok
+ lombok
+ provided
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-antrun-plugin
+
+
+ clean-scip-targetroot
+ generate-sources
+
+ run
+
+
+
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ true
+
+
+ org.projectlombok
+ lombok
+ ${lombok.version}
+
+
+ com.sourcegraph
+ scip-javac
+ ${project.version}
+ all
+
+
+
+ -J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED
+ -J--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED
+ -J--add-exports=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED
+ -J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED
+ -J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED
+ -Xplugin:scip -text:on -verbose -sourceroot:${maven.multiModuleProjectDirectory} -targetroot:${project.build.directory}/scip-targetroot -randomtimestamp=${maven.build.timestamp}
+
+
+
+
+
+
diff --git a/scip-snapshots/cases/kotlin/common/pom.xml b/scip-snapshots/cases/kotlin/common/pom.xml
new file mode 100644
index 000000000..c6f6cf895
--- /dev/null
+++ b/scip-snapshots/cases/kotlin/common/pom.xml
@@ -0,0 +1,118 @@
+
+
+ 4.0.0
+
+
+ com.sourcegraph
+ scip-java-root
+ ${revision}
+ ../../../../pom.xml
+
+
+ scip-snapshots-kotlin-common
+ scip-snapshots-kotlin-common
+
+ true
+
+
+
+
+ com.sourcegraph
+ scip-javac
+ ${project.version}
+ all
+ provided
+
+
+ com.sourcegraph
+ scip-kotlinc
+ ${project.version}
+ all
+ provided
+
+
+ org.jetbrains.kotlin
+ kotlin-stdlib
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-antrun-plugin
+
+
+ clean-scip-targetroot
+ generate-sources
+
+ run
+
+
+
+
+
+
+
+
+
+
+
+ org.jetbrains.kotlin
+ kotlin-maven-plugin
+
+
+ compile
+ compile
+
+ compile
+
+
+ 11
+
+ ${project.basedir}/src/main/kotlin
+
+
+ -Xplugin=${maven.multiModuleProjectDirectory}/scip-kotlinc/target/scip-kotlinc-${project.version}-all.jar
+ -P
+ plugin:scip-kotlinc:sourceroot=${maven.multiModuleProjectDirectory}
+ -P
+ plugin:scip-kotlinc:targetroot=${project.build.directory}/scip-targetroot
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+
+ default-compile
+ none
+
+
+ java-compile
+ compile
+
+ compile
+
+
+
+
+ true
+
+ -J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED
+ -J--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED
+ -J--add-exports=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED
+ -J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED
+ -J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED
+ -Xplugin:scip -sourceroot:${maven.multiModuleProjectDirectory} -targetroot:${project.build.directory}/scip-targetroot
+
+
+
+
+
+
diff --git a/scip-snapshots/pom.xml b/scip-snapshots/pom.xml
new file mode 100644
index 000000000..0dccd2039
--- /dev/null
+++ b/scip-snapshots/pom.xml
@@ -0,0 +1,149 @@
+
+
+ 4.0.0
+
+
+ com.sourcegraph
+ scip-java-root
+ ${revision}
+ ../pom.xml
+
+
+ scip-snapshots
+ scip-snapshots
+
+ true
+ ${maven.multiModuleProjectDirectory}
+ ${maven.multiModuleProjectDirectory}/scip-snapshots/expected/java/common
+ ${maven.multiModuleProjectDirectory}/scip-snapshots/cases/java/common/target/scip-targetroot
+ ${maven.multiModuleProjectDirectory}/scip-snapshots/expected/kotlin/common
+ ${maven.multiModuleProjectDirectory}/scip-snapshots/cases/kotlin/common/target/scip-targetroot
+
+
+
+
+ com.sourcegraph
+ scip-java
+ ${project.version}
+
+
+ com.sourcegraph
+ scip-snapshots-java-common
+ ${project.version}
+ test
+
+
+ com.sourcegraph
+ scip-snapshots-kotlin-common
+ ${project.version}
+ test
+
+
+ org.scip-code
+ scip-java-bindings
+
+
+ org.junit.jupiter
+ junit-jupiter-api
+ test
+
+
+ org.junit.jupiter
+ junit-jupiter-engine
+ test
+
+
+ org.junit.platform
+ junit-platform-launcher
+ test
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+ ${javac.jvm.options}
+
+ ${snapshot.sourceroot}
+ java-common,kotlin-common
+ ${snapshot.java.expectDir}
+ ${snapshot.java.targetroot}
+ ${snapshot.kotlin.expectDir}
+ ${snapshot.kotlin.targetroot}
+ true
+ 11
+
+
+
+
+
+
+
+
+ saveSnapshots
+
+ true
+
+
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+
+
+ save-snapshots
+ verify
+
+ java
+
+
+ tests.SaveSnapshots
+ test
+
+
+ snapshot.sourceroot
+ ${snapshot.sourceroot}
+
+
+ snapshot.cases
+ java-common,kotlin-common
+
+
+ snapshot.case.java-common.expectDir
+ ${snapshot.java.expectDir}
+
+
+ snapshot.case.java-common.targetroot
+ ${snapshot.java.targetroot}
+
+
+ snapshot.case.kotlin-common.expectDir
+ ${snapshot.kotlin.expectDir}
+
+
+ snapshot.case.kotlin-common.targetroot
+ ${snapshot.kotlin.targetroot}
+
+
+ snapshot.case.kotlin-common.aggregateNoEmitInverseRelationships
+ true
+
+
+ scip.jdk.version
+ 11
+
+
+
+
+
+
+
+
+
+
+
diff --git a/scip-snapshots/src/main/java/tests/MinimizedSnapshotScipGenerator.java b/scip-snapshots/src/main/java/tests/MinimizedSnapshotScipGenerator.java
index dc635c0ce..0cd8ed930 100644
--- a/scip-snapshots/src/main/java/tests/MinimizedSnapshotScipGenerator.java
+++ b/scip-snapshots/src/main/java/tests/MinimizedSnapshotScipGenerator.java
@@ -18,7 +18,7 @@
/**
* Indexes the {@code scip-snapshots/cases} corpora and renders golden SCIP snapshots. Runtime paths
- * are supplied as {@code -Dsnapshot.*} system properties by the Gradle build.
+ * are supplied as {@code -Dsnapshot.*} system properties by the Maven build.
*/
public class MinimizedSnapshotScipGenerator {
public static final class SnapshotCase {
@@ -141,7 +141,8 @@ private static String requiredProperty(String name) {
throw new IllegalStateException(
"Missing -D"
+ name
- + ". Run via gradle :scip-snapshots:test or :scip-snapshots:saveSnapshots.");
+ + ". Run via mvn -pl scip-snapshots -am test or mvn -pl scip-snapshots -am"
+ + " -DskipTests -PsaveSnapshots verify.");
}
return value;
}
diff --git a/scip-snapshots/src/main/java/tests/SaveSnapshots.java b/scip-snapshots/src/main/java/tests/SaveSnapshots.java
index 1180e8d6e..6f0600e45 100644
--- a/scip-snapshots/src/main/java/tests/SaveSnapshots.java
+++ b/scip-snapshots/src/main/java/tests/SaveSnapshots.java
@@ -1,8 +1,9 @@
package tests;
/**
- * Regenerates all snapshot goldens (invoked by {@code gradle :scip-snapshots:saveSnapshots}).
- * Snapshot cases are supplied via {@code -Dsnapshot.*} system properties by the Gradle build.
+ * Regenerates all snapshot goldens (invoked by {@code mvn -pl scip-snapshots -am -DskipTests
+ * -PsaveSnapshots verify}). Snapshot cases are supplied via {@code -Dsnapshot.*} system properties
+ * by the Maven build.
*/
public final class SaveSnapshots {
private SaveSnapshots() {}
diff --git a/scip-snapshots/src/test/java/tests/AssertSnapshotHandler.java b/scip-snapshots/src/test/java/tests/AssertSnapshotHandler.java
index 201ba04b3..c3ca8a8a6 100644
--- a/scip-snapshots/src/test/java/tests/AssertSnapshotHandler.java
+++ b/scip-snapshots/src/test/java/tests/AssertSnapshotHandler.java
@@ -40,8 +40,9 @@ public void onSnapshotTest(
fail(
"no snapshot file for "
+ relativePath
- + ". To fix this problem, execute the command 'gradle"
- + " :scip-snapshots:saveSnapshots'");
+ + ". To fix this problem, execute the command 'mvn"
+ + " --batch-mode -pl scip-snapshots -am -DskipTests -PsaveSnapshots"
+ + " verify'");
}
String expected;
try {