1
1
/*
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.
3
3
*/
4
4
5
5
import util.targets.hasJavaModule
@@ -11,9 +11,13 @@ plugins {
11
11
12
12
description = " Internal module for checking JPMS compliance"
13
13
14
- tasks.register(" generateModuleInfo" ) {
14
+ val excludedProjects = listOf (
15
+ " protobuf-plugin" ,
16
+ )
17
+
18
+ val generateModuleInfo = tasks.register(" generateModuleInfo" ) {
15
19
val modules = project.rootProject.subprojects
16
- .filter { it.hasJavaModule }
20
+ .filter { it.applicableForCheck() }
17
21
.map { it.javaModuleName() }
18
22
19
23
val moduleInfoPath = project.projectDir.absolutePath + " /src/main/java/module-info.java"
@@ -33,7 +37,7 @@ tasks.register("generateModuleInfo") {
33
37
}
34
38
35
39
tasks.getByName<JavaCompile >(" compileJava" ) {
36
- dependsOn(" generateModuleInfo" )
40
+ dependsOn(generateModuleInfo)
37
41
38
42
val projectFiles = project.files()
39
43
doFirst {
@@ -58,9 +62,13 @@ dependencies {
58
62
.joinToString(" :" , prefix = " :" ) { segment -> segment.name }
59
63
60
64
it.plugins.withId(" maven-publish" ) {
61
- if (it.hasJavaModule ) {
65
+ if (it.applicableForCheck() ) {
62
66
api(project(dep))
63
67
}
64
68
}
65
69
}
66
70
}
71
+
72
+ private fun Project.applicableForCheck (): Boolean {
73
+ return hasJavaModule && name !in excludedProjects
74
+ }
0 commit comments