diff --git a/build.gradle b/build.gradle index 540a0493..c1faef5e 100644 --- a/build.gradle +++ b/build.gradle @@ -3,6 +3,7 @@ import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform import org.treesitter.build.GenTask plugins { + id "maven-publish" alias(libs.plugins.download) alias(libs.plugins.nexus.staging) } @@ -151,3 +152,11 @@ tasks.register("printSubProjectAsMarkdown") { }}) } } + + +subprojects { + afterEvaluate { subproject -> + def sigArc = subproject.getTasks().findByPath("signArchives") + sigArc.each { it.dependsOn(publishMavenPublicationToMavenLocal) } + } +} diff --git a/settings.gradle b/settings.gradle index 94c9f18f..b83d16a4 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,7 +1,7 @@ rootProject.name = 'tree-sitter-ng' include 'tree-sitter' +include 'tree-sitter-bom' include 'tree-sitter-json' -include 'tree-sitter-core' include 'tree-sitter-demo' include 'tree-sitter-c' include 'tree-sitter-ada' @@ -26,7 +26,6 @@ include 'tree-sitter-elixir' include 'tree-sitter-elm' include 'tree-sitter-elisp' include 'tree-sitter-eno' -include 'tree-sitter-embedded_template' include 'tree-sitter-embedded-template' include 'tree-sitter-erlang' include 'tree-sitter-fennel' @@ -91,7 +90,6 @@ include 'tree-sitter-smali' include 'tree-sitter-sourcepawn' include 'tree-sitter-sparql' include 'tree-sitter-sql-bigquery' -include 'tree-sitter-sql-sqlite' include 'tree-sitter-sqlite' include 'tree-sitter-sql' include 'tree-sitter-ssh-client-config' @@ -106,7 +104,6 @@ include 'tree-sitter-typescript' include 'tree-sitter-verilog' include 'tree-sitter-vhdl' include 'tree-sitter-vue' -include 'tree-sitter-wasm' include 'tree-sitter-wat' include 'tree-sitter-wast' include 'tree-sitter-wgsl' diff --git a/tree-sitter-bom/build.gradle.kts b/tree-sitter-bom/build.gradle.kts new file mode 100644 index 00000000..e49fa146 --- /dev/null +++ b/tree-sitter-bom/build.gradle.kts @@ -0,0 +1,54 @@ +plugins { + `java-library` + `maven-publish` + signing +} + +dependencies { + constraints { + project.rootProject.subprojects.filterNot(project::equals).forEach { subproject -> + api(subproject) + } + } +} + +publishing { + // tree-sitter POM to copy base values + val base = project.rootProject.subprojects.filter { p -> p.name == "tree-sitter" }[0] + .publishing.publications["maven"] as MavenPublication + + publications { + create("maven") { + groupId = base.groupId + artifactId = project.name + version = base.version + pom { + description = base.pom.description.get() + " (BOM)" + packaging = "pom" // Create Maven BOM + url = base.pom.url + licenses { + license { + name = "MIT" + } + } + developers { + developer { + id = "bonede" + name = "Wang Liang" + email = "bonede@qq.com" + } + } + scm { + connection = "scm:git:https://github.com/bonede/tree-sitter-ng.git" + developerConnection = "scm:git:https://github.com/bonede/tree-sitter-ng.git" + url = "https://github.com/bonede/tree-sitter-ng" + } + } + from(components["java"]) + } + } +} + +signing { + sign(publishing.publications["maven"]) +}