Skip to content

Commit

Permalink
Merge pull request #12562 from ihostage/issue-12531
Browse files Browse the repository at this point in the history
[Gradle] Fix `playRun` classpath when project depends on a pure java project
  • Loading branch information
mergify[bot] committed Apr 27, 2024
2 parents 3a2f3d9 + a770615 commit 5f6e365
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 28 deletions.
Expand Up @@ -19,6 +19,7 @@
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import org.gradle.api.Incubating;
import org.gradle.api.Plugin;
import org.gradle.api.Project;
Expand All @@ -29,8 +30,7 @@
import org.gradle.api.file.FileCollection;
import org.gradle.api.file.SourceDirectorySet;
import org.gradle.api.plugins.JavaPlugin;
import org.gradle.api.tasks.compile.JavaCompile;
import org.gradle.api.tasks.scala.ScalaCompile;
import org.gradle.api.tasks.compile.AbstractCompile;
import org.gradle.language.jvm.tasks.ProcessResources;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
Expand Down Expand Up @@ -63,26 +63,18 @@ private FileCollection filterNonChangingArtifacts(Configuration configuration) {

private List<File> findClasspathDirectories(@Nullable Project project) {
if (project == null) return List.of();
return List.of(
project
.getTasks()
.named(COMPILE_JAVA_TASK_NAME, JavaCompile.class)
.get()
.getDestinationDirectory()
.get()
.getAsFile(),
project
.getTasks()
.named("compileScala", ScalaCompile.class)
.get()
.getDestinationDirectory()
.get()
.getAsFile(),
project
.getTasks()
.named(PROCESS_RESOURCES_TASK_NAME, ProcessResources.class)
.get()
.getDestinationDir());
return project.getTasks().stream()
.map(
task -> {
if (List.of(COMPILE_JAVA_TASK_NAME, "compileScala").contains(task.getName())) {
return ((AbstractCompile) task).getDestinationDirectory().get().getAsFile();
} else if (task.getName().equals(PROCESS_RESOURCES_TASK_NAME)) {
return ((ProcessResources) task).getDestinationDir();
}
return null;
})
.filter(Objects::nonNull)
.toList();
}

private List<DirectoryProperty> findAssetsDirectories(@Nullable Project project) {
Expand Down
Expand Up @@ -60,8 +60,7 @@ void checkClasspathWithSubmodules() {
scalaLib.getPluginManager().apply("scala");

project.getRepositories().add(project.getRepositories().mavenCentral());
// TODO: Uncomment in https://github.com/playframework/playframework/pull/12531
// project.getDependencies().add("implementation", javaLib);
project.getDependencies().add("implementation", javaLib);
project.getDependencies().add("implementation", scalaLib);

((DefaultProject) project).evaluate();
Expand All @@ -71,10 +70,8 @@ void checkClasspathWithSubmodules() {
project.getLayout().getBuildDirectory().file("classes/scala/main").get().getAsFile(),
project.getLayout().getBuildDirectory().file("classes/java/main").get().getAsFile(),
project.getLayout().getBuildDirectory().file("resources/main").get().getAsFile(),
// TODO: Uncomment in https://github.com/playframework/playframework/pull/12531
// javaLib.getLayout().getBuildDirectory().file("classes/scala/main").get().getAsFile(),
// javaLib.getLayout().getBuildDirectory().file("classes/java/main").get().getAsFile(),
// javaLib.getLayout().getBuildDirectory().file("resources/main").get().getAsFile()
javaLib.getLayout().getBuildDirectory().file("classes/java/main").get().getAsFile(),
javaLib.getLayout().getBuildDirectory().file("resources/main").get().getAsFile(),
scalaLib.getLayout().getBuildDirectory().file("classes/scala/main").get().getAsFile(),
scalaLib.getLayout().getBuildDirectory().file("classes/java/main").get().getAsFile(),
scalaLib.getLayout().getBuildDirectory().file("resources/main").get().getAsFile());
Expand Down

0 comments on commit 5f6e365

Please sign in to comment.