1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.plugins.toolchain.jdk;
20
21 import javax.inject.Inject;
22
23 import java.util.List;
24
25 import org.apache.maven.plugin.AbstractMojo;
26 import org.apache.maven.plugins.annotations.Mojo;
27 import org.apache.maven.plugins.annotations.Parameter;
28 import org.apache.maven.toolchain.model.PersistedToolchains;
29 import org.apache.maven.toolchain.model.ToolchainModel;
30 import org.codehaus.plexus.util.xml.Xpp3Dom;
31
32 import static java.util.Comparator.comparing;
33 import static org.apache.maven.plugins.toolchain.jdk.ToolchainDiscoverer.SORTED_PROVIDES;
34
35
36
37
38
39
40 @Mojo(name = "display-discovered-jdk-toolchains", requiresProject = false)
41 public class DisplayDiscoveredJdkToolchainsMojo extends AbstractMojo {
42
43
44
45
46
47
48
49
50
51
52
53
54 @Parameter(property = "toolchain.jdk.comparator", defaultValue = "lts,current,env,version,vendor")
55 String comparator;
56
57
58
59
60 @Inject
61 ToolchainDiscoverer discoverer;
62
63 @Override
64 public void execute() {
65 PersistedToolchains toolchains = discoverer.discoverToolchains(comparator);
66 List<ToolchainModel> models = toolchains.getToolchains();
67 getLog().info("Discovered " + models.size() + " JDK toolchains:");
68 for (ToolchainModel model : models) {
69 getLog().info(" - "
70 + ((Xpp3Dom) model.getConfiguration()).getChild("jdkHome").getValue());
71 getLog().info(" provides:");
72 model.getProvides().entrySet().stream()
73 .sorted(comparing(e -> SORTED_PROVIDES.indexOf(e.getKey().toString())))
74 .forEach(e -> getLog().info(" " + e.getKey() + ": " + e.getValue()));
75 }
76 }
77 }