Skip to content

Commit be03888

Browse files
committed
Use a lenient artifact view for resolving javaModulesMergeJars
Fixes #36
1 parent f46ca02 commit be03888

File tree

3 files changed

+68
-1
lines changed

3 files changed

+68
-1
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# Extra Java Module Info Gradle Plugin - Changelog
22

3+
## Version 1.1
4+
* [Fixed] [#36](https://github.com/jjohannes/extra-java-module-info/issues/36) - mergeJar can lead to unnecessary build failures (Thanks [nieqian1230](https://github.com/nieqian1230) for reporting!)
5+
36
## Version 1.0
47
* Moved project to [GradleX](https://gradlex.org) - new plugin ID: `org.gradlex.extra-java-module-info`
58

src/main/java/org/gradlex/javamodule/moduleinfo/ExtraJavaModuleInfoPlugin.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,8 @@ private void configureTransform(Project project, ExtraJavaModuleInfoPluginExtens
105105
p.getFailOnMissingModuleInfo().set(extension.getFailOnMissingModuleInfo());
106106

107107
// See: https://github.com/adammurdoch/dependency-graph-as-task-inputs/blob/main/plugins/src/main/java/TestPlugin.java
108-
Provider<Set<ResolvedArtifactResult>> artifacts = project.provider(() -> javaModulesMergeJars.getIncoming().getArtifacts().getArtifacts());
108+
Provider<Set<ResolvedArtifactResult>> artifacts = project.provider(() ->
109+
javaModulesMergeJars.getIncoming().artifactView(v -> v.lenient(true)).getArtifacts().getArtifacts());
109110
p.getMergeJarIds().set(artifacts.map(new IdExtractor()));
110111
p.getMergeJars().set(artifacts.map(new FileExtractor(project.getLayout())));
111112
});
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
package org.gradlex.javamodule.moduleinfo.test
2+
3+
import org.gradlex.javamodule.moduleinfo.test.fixture.GradleBuild
4+
import org.gradlex.javamodule.moduleinfo.test.fixture.LegacyLibraries
5+
import spock.lang.Specification
6+
7+
class EdgeCasesFunctionalTest extends Specification {
8+
9+
@Delegate
10+
GradleBuild build = new GradleBuild()
11+
12+
LegacyLibraries libs = new LegacyLibraries(false)
13+
14+
def setup() {
15+
settingsFile << 'rootProject.name = "test-project"'
16+
buildFile << '''
17+
plugins {
18+
id("application")
19+
id("org.gradlex.extra-java-module-info")
20+
}
21+
application {
22+
mainModule.set("org.gradle.sample.app")
23+
mainClass.set("org.gradle.sample.app.Main")
24+
}
25+
'''
26+
}
27+
28+
def "doe not fail if an unused Jar on the merge path cannot be resolved"() {
29+
given:
30+
file("src/main/java/org/gradle/sample/app/Main.java") << """
31+
package org.gradle.sample.app;
32+
33+
public class Main {
34+
public static void main(String[] args) {
35+
}
36+
}
37+
"""
38+
file("src/main/java/module-info.java") << """
39+
module org.gradle.sample.app {
40+
requires org.slf4j;
41+
}
42+
"""
43+
buildFile << """
44+
dependencies {
45+
implementation("org.slf4j:slf4j-api:2.0.3")
46+
}
47+
48+
extraJavaModuleInfo {
49+
failOnMissingModuleInfo.set(false)
50+
module("${libs.zookeeper}", "org.apache.zookeeper") {
51+
mergeJar("${libs.zookeeperJute}")
52+
53+
exports("org.apache.jute")
54+
exports("org.apache.zookeeper")
55+
exports("org.apache.zookeeper.server.persistence")
56+
}
57+
}
58+
"""
59+
60+
expect:
61+
run()
62+
}
63+
}

0 commit comments

Comments
 (0)