Browse Source

Add --with-plugins to run task (#125468)

This commit adds a new command line option to the run task to include
plugins. The option takes in a comma separated list of plugins from the
plugins directory. For example:
```
./gradlew run --with-plugins=analysis-icu,analysis-nori
```
Ryan Ernst 6 tháng trước cách đây
mục cha
commit
740d9833a8

+ 19 - 0
build-tools/src/main/java/org/elasticsearch/gradle/testclusters/RunTask.java

@@ -24,6 +24,7 @@ import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
@@ -45,6 +46,8 @@ public abstract class RunTask extends DefaultTestClustersTask {
 
     private Boolean apmServerEnabled = false;
 
+    private List<String> plugins = List.of();
+
     private Boolean preserveData = false;
 
     private Path dataDir = null;
@@ -101,6 +104,22 @@ public abstract class RunTask extends DefaultTestClustersTask {
         this.apmServerEnabled = apmServerEnabled;
     }
 
+    @Option(option = "with-plugins", description = "Run distribution with plugins installed")
+    public void setPlugins(String plugins) {
+        this.plugins = Arrays.asList(plugins.split(","));
+        for (var cluster : getClusters()) {
+            for (String plugin : this.plugins) {
+                cluster.plugin(":plugins:" + plugin);
+            }
+            dependsOn(cluster.getPluginAndModuleConfigurations());
+        }
+    }
+
+    @Input
+    public List<String> getPlugins() {
+        return plugins;
+    }
+
     @Option(option = "data-dir", description = "Override the base data directory used by the testcluster")
     public void setDataDir(String dataDirStr) {
         dataDir = Paths.get(dataDirStr).toAbsolutePath();