11/*
2- * Copyright 2023-2024 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license.
2+ * Copyright 2023-2025 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license.
33 */
44
55import util.targets.hasJavaModule
@@ -11,9 +11,13 @@ plugins {
1111
1212description = " Internal module for checking JPMS compliance"
1313
14- tasks.register(" generateModuleInfo" ) {
14+ val excludedProjects = listOf (
15+ " protobuf-plugin" ,
16+ )
17+
18+ val generateModuleInfo = tasks.register(" generateModuleInfo" ) {
1519 val modules = project.rootProject.subprojects
16- .filter { it.hasJavaModule }
20+ .filter { it.applicableForCheck() }
1721 .map { it.javaModuleName() }
1822
1923 val moduleInfoPath = project.projectDir.absolutePath + " /src/main/java/module-info.java"
@@ -33,7 +37,7 @@ tasks.register("generateModuleInfo") {
3337}
3438
3539tasks.getByName<JavaCompile >(" compileJava" ) {
36- dependsOn(" generateModuleInfo" )
40+ dependsOn(generateModuleInfo)
3741
3842 val projectFiles = project.files()
3943 doFirst {
@@ -58,9 +62,13 @@ dependencies {
5862 .joinToString(" :" , prefix = " :" ) { segment -> segment.name }
5963
6064 it.plugins.withId(" maven-publish" ) {
61- if (it.hasJavaModule ) {
65+ if (it.applicableForCheck() ) {
6266 api(project(dep))
6367 }
6468 }
6569 }
6670}
71+
72+ private fun Project.applicableForCheck (): Boolean {
73+ return hasJavaModule && name !in excludedProjects
74+ }
0 commit comments