From 44b58bbc81d8790065d7cb1da126a742addb4db5 Mon Sep 17 00:00:00 2001 From: George Gastaldi Date: Fri, 29 Nov 2019 07:57:28 -0300 Subject: [PATCH] Installing plugin in maven local repo --- devtools/gradle/pom.xml | 36 +++++++++++++++++-- .../io/quarkus/gradle/tasks/QuarkusDev.java | 18 ++++++++++ .../java/settings.gradle-template.ftl | 11 ++++-- .../kotlin/settings.gradle-template.ftl | 11 ++++-- .../scala/settings.gradle-template.ftl | 11 ++++-- .../cli/commands/file/GradleBuildFile.java | 5 +++ 6 files changed, 80 insertions(+), 12 deletions(-) diff --git a/devtools/gradle/pom.xml b/devtools/gradle/pom.xml index 9233364bb..31ff3fc02 100644 --- a/devtools/gradle/pom.xml +++ b/devtools/gradle/pom.xml @@ -10,7 +10,7 @@ 4.0.0 - quarkus-gradle-plugin + io.quarkus.gradle.plugin pom Quarkus - Gradle Plugin Quarkus - Gradle Plugin @@ -19,8 +19,6 @@ ./gradlew build false - true - true @@ -79,6 +77,38 @@ + + org.codehaus.mojo + build-helper-maven-plugin + + + attach-artifacts + package + + attach-artifact + + + + + build/libs/quarkus-gradle-plugin-${project.version}.jar + jar + + + build/libs/quarkus-gradle-plugin-${project.version}-javadoc.jar + jar + javadoc + + + build/libs/quarkus-gradle-plugin-${project.version}-sources.jar + jar + sources + + + ${skip.gradle.build} + + + + org.sonatype.plugins diff --git a/devtools/gradle/src/main/java/io/quarkus/gradle/tasks/QuarkusDev.java b/devtools/gradle/src/main/java/io/quarkus/gradle/tasks/QuarkusDev.java index 1ce37de3b..0ecd1f926 100644 --- a/devtools/gradle/src/main/java/io/quarkus/gradle/tasks/QuarkusDev.java +++ b/devtools/gradle/src/main/java/io/quarkus/gradle/tasks/QuarkusDev.java @@ -36,6 +36,7 @@ import org.gradle.api.artifacts.Configuration; import org.gradle.api.artifacts.Dependency; import org.gradle.api.artifacts.DependencySet; import org.gradle.api.artifacts.ProjectDependency; +import org.gradle.api.artifacts.ResolvedDependency; import org.gradle.api.plugins.Convention; import org.gradle.api.plugins.JavaPlugin; import org.gradle.api.plugins.JavaPluginConvention; @@ -248,6 +249,11 @@ public class QuarkusDev extends QuarkusTask { wiringClassesDirectory.mkdirs(); addToClassPaths(classPathManifest, context, wiringClassesDirectory); + //we also want to add the maven plugin jar to the class path + //this allows us to just directly use classes, without messing around copying them + //to the runner jar + addGradlePluginDeps(classPathManifest, context); + //now we need to build a temporary jar to actually run File tempFile = new File(getBuildDir(), extension.finalName() + "-dev.jar"); @@ -388,6 +394,18 @@ public class QuarkusDev extends QuarkusTask { } } + private void addGradlePluginDeps(StringBuilder classPathManifest, DevModeContext context) { + Configuration conf = getProject().getBuildscript().getConfigurations().getByName("classpath"); + ResolvedDependency quarkusDep = conf.getResolvedConfiguration().getFirstLevelModuleDependencies().stream() + .filter(rd -> "io.quarkus.gradle.plugin".equals(rd.getModuleName())) + .findFirst() + .orElseThrow(() -> new IllegalStateException("Unable to find quarkus-gradle-plugin dependency")); + + quarkusDep.getAllModuleArtifacts().stream() + .map(ra -> ra.getFile()) + .forEach(f -> addToClassPaths(classPathManifest, context, f)); + } + private void addToClassPaths(StringBuilder classPathManifest, DevModeContext context, File file) { if (filesIncludedInClasspath.add(file)) { getProject().getLogger().info("Adding dependency {}", file); diff --git a/devtools/platform-descriptor-json/src/main/resources/templates/basic-rest/java/settings.gradle-template.ftl b/devtools/platform-descriptor-json/src/main/resources/templates/basic-rest/java/settings.gradle-template.ftl index e8e2968f3..fcc7b839c 100644 --- a/devtools/platform-descriptor-json/src/main/resources/templates/basic-rest/java/settings.gradle-template.ftl +++ b/devtools/platform-descriptor-json/src/main/resources/templates/basic-rest/java/settings.gradle-template.ftl @@ -1,6 +1,11 @@ pluginManagement { - plugins { - id 'io.quarkus' version "${quarkusPluginVersion}" - } + repositories { + mavenLocal() + mavenCentral() + gradlePluginPortal() + } + plugins { + id 'io.quarkus' version "${quarkusPluginVersion}" + } } rootProject.name='${project_artifactId}' diff --git a/devtools/platform-descriptor-json/src/main/resources/templates/basic-rest/kotlin/settings.gradle-template.ftl b/devtools/platform-descriptor-json/src/main/resources/templates/basic-rest/kotlin/settings.gradle-template.ftl index e8e2968f3..fcc7b839c 100644 --- a/devtools/platform-descriptor-json/src/main/resources/templates/basic-rest/kotlin/settings.gradle-template.ftl +++ b/devtools/platform-descriptor-json/src/main/resources/templates/basic-rest/kotlin/settings.gradle-template.ftl @@ -1,6 +1,11 @@ pluginManagement { - plugins { - id 'io.quarkus' version "${quarkusPluginVersion}" - } + repositories { + mavenLocal() + mavenCentral() + gradlePluginPortal() + } + plugins { + id 'io.quarkus' version "${quarkusPluginVersion}" + } } rootProject.name='${project_artifactId}' diff --git a/devtools/platform-descriptor-json/src/main/resources/templates/basic-rest/scala/settings.gradle-template.ftl b/devtools/platform-descriptor-json/src/main/resources/templates/basic-rest/scala/settings.gradle-template.ftl index e8e2968f3..fcc7b839c 100644 --- a/devtools/platform-descriptor-json/src/main/resources/templates/basic-rest/scala/settings.gradle-template.ftl +++ b/devtools/platform-descriptor-json/src/main/resources/templates/basic-rest/scala/settings.gradle-template.ftl @@ -1,6 +1,11 @@ pluginManagement { - plugins { - id 'io.quarkus' version "${quarkusPluginVersion}" - } + repositories { + mavenLocal() + mavenCentral() + gradlePluginPortal() + } + plugins { + id 'io.quarkus' version "${quarkusPluginVersion}" + } } rootProject.name='${project_artifactId}' diff --git a/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/file/GradleBuildFile.java b/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/file/GradleBuildFile.java index bb6bf433b..804ec413d 100644 --- a/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/file/GradleBuildFile.java +++ b/independent-projects/tools/common/src/main/java/io/quarkus/cli/commands/file/GradleBuildFile.java @@ -85,6 +85,11 @@ public class GradleBuildFile extends BuildFile { if (!settingsContent.contains("id 'io.quarkus'")) { res.append(System.lineSeparator()); res.append("pluginManagement {").append(System.lineSeparator()); + res.append(" repositories {").append(System.lineSeparator()); + res.append(" mavenLocal()").append(System.lineSeparator()); + res.append(" mavenCentral()").append(System.lineSeparator()); + res.append(" gradlePluginPortal()").append(System.lineSeparator()); + res.append(" }").append(System.lineSeparator()); res.append(" plugins {").append(System.lineSeparator()); res.append(" id 'io.quarkus' version \"${quarkusPluginVersion}\"").append(System.lineSeparator()); res.append(" }").append(System.lineSeparator());