Skip to content

Commit 05b3089

Browse files
committed
Do not include optional dependencies
Closes gh-66
1 parent de6c744 commit 05b3089

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

spring-boot-testjars-maven/src/main/java/org/springframework/experimental/boot/server/exec/MavenClasspathEntry.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
import org.eclipse.aether.transport.file.FileTransporterFactory;
4848
import org.eclipse.aether.transport.http.HttpTransporterFactory;
4949
import org.eclipse.aether.util.artifact.JavaScopes;
50+
import org.eclipse.aether.util.filter.AndDependencyFilter;
5051
import org.eclipse.aether.util.filter.DependencyFilterUtils;
5152
import org.eclipse.aether.util.repository.SimpleArtifactDescriptorPolicy;
5253

@@ -128,13 +129,15 @@ public List<String> resolve() {
128129

129130
Artifact artifact = new DefaultArtifact(this.coords);
130131

131-
DependencyFilter classpathFlter = DependencyFilterUtils.classpathFilter(JavaScopes.RUNTIME, JavaScopes.COMPILE);
132+
DependencyFilter scopeFilter = DependencyFilterUtils.classpathFilter(JavaScopes.RUNTIME, JavaScopes.COMPILE);
133+
DependencyFilter optionalFilter = (node, parents) -> !node.getDependency().isOptional();
134+
DependencyFilter dependencyFilter = new AndDependencyFilter(scopeFilter, optionalFilter);
132135

133136
CollectRequest collectRequest = new CollectRequest();
134137
collectRequest.setRoot(new Dependency(artifact, JavaScopes.RUNTIME));
135138
collectRequest.setRepositories(this.repositories);
136139

137-
DependencyRequest dependencyRequest = new DependencyRequest(collectRequest, classpathFlter);
140+
DependencyRequest dependencyRequest = new DependencyRequest(collectRequest, dependencyFilter);
138141

139142
List<String> result = new ArrayList<>();
140143
try {

spring-boot-testjars-maven/src/test/java/org/springframework/experimental/boot/server/exec/MavenClasspathEntryTests.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,15 @@ void runtimeDependencyResolved() {
5757
assertThat(entries).anyMatch(entry -> entry.contains(runtimeDependency));
5858
}
5959

60+
@Test
61+
void optionalDependencyNotResolved() {
62+
MavenClasspathEntry classpath = new MavenClasspathEntry(
63+
"org.springframework.data:spring-data-commons:3.2.9");
64+
List<String> entries = classpath.resolve();
65+
String optionalDependency = "spring-expression";
66+
assertThat(entries).noneMatch(entry -> entry.contains(optionalDependency));
67+
}
68+
6069
@Test
6170
void jdk() {
6271
String cloudVersion = "4.2.0";

0 commit comments

Comments
 (0)