List of usage examples for org.apache.maven.cli MavenCli MavenCli
public MavenCli(ClassWorld classWorld)
From source file:org.eclipse.che.maven.server.MavenServerImpl.java
License:Open Source License
public MavenServerImpl(MavenSettings settings) throws RemoteException { BasicConfigurator.configure();//from w ww . j av a 2 s . c om Logger.getRootLogger().setLevel(getLog4jLogLevel(settings.getLoggingLevel())); File mavenHome = settings.getMavenHome(); if (mavenHome != null) { System.setProperty("maven.home", mavenHome.getPath()); } terminalLogger = new MavenServerTerminalLogger(); terminalLogger.setThreshold(settings.getLoggingLevel()); ClassWorld classWorld = new ClassWorld("plexus.core", Thread.currentThread().getContextClassLoader()); MavenCli cli = new MavenCli(classWorld) { @Override protected void customizeContainer(PlexusContainer container) { ((DefaultPlexusContainer) container).setLoggerManager(new BaseLoggerManager() { @Override protected org.codehaus.plexus.logging.Logger createLogger(String s) { return terminalLogger; } }); } }; //maven 3.2.2 has org.apache.maven.cli.MavenCli$CliRequest class //but maven 3.3.3 has org.apache.maven.cli.CliRequest so try to support both classes Class<?> cliRequestClass; SettingsBuilder settingsBuilder = null; try { cliRequestClass = MavenCli.class.getClassLoader().loadClass("org.apache.maven.cli.CliRequest"); System.setProperty("maven.multiModuleProjectDirectory", new File("").getPath()); settingsBuilder = new DefaultSettingsBuilderFactory().newInstance(); } catch (ClassNotFoundException e) { try { cliRequestClass = MavenCli.class.getClassLoader() .loadClass("org.apache.maven.cli.MavenCli$CliRequest"); } catch (ClassNotFoundException cnfe) { throw new RuntimeException(cnfe); } } Object request; List<String> commandLine = new ArrayList<>(settings.getUserProperties().size()); commandLine.addAll(settings.getUserProperties().entrySet().stream() .map(entry -> "-D" + entry.getKey() + "=" + entry.getValue()).collect(Collectors.toList())); if (settings.getLoggingLevel() == MavenTerminal.LEVEL_DEBUG) { commandLine.add("-X"); commandLine.add("-e"); } if (settings.getLoggingLevel() == MavenTerminal.LEVEL_DISABLED) { commandLine.add("-q"); } if (commandLine.contains("-U") || commandLine.contains("--update-snapshots")) { updateSnapshots = true; } try { Constructor constructor = cliRequestClass.getDeclaredConstructor(String[].class, ClassWorld.class); constructor.setAccessible(true); request = constructor.newInstance(commandLine.toArray(new String[commandLine.size()]), classWorld); for (String method : CLI_METHODS) { Method m = MavenCli.class.getDeclaredMethod(method, cliRequestClass); m.setAccessible(true); m.invoke(cli, request); } Method containerMethod = MavenCli.class.getDeclaredMethod("container", cliRequestClass); containerMethod.setAccessible(true); container = (DefaultPlexusContainer) containerMethod.invoke(cli, request); container.getLoggerManager().setThreshold(settings.getLoggingLevel()); Field systemProperties = cliRequestClass.getDeclaredField("systemProperties"); systemProperties.setAccessible(true); properties = (Properties) systemProperties.get(request); Field userPropertiesField = cliRequestClass.getDeclaredField("userProperties"); userPropertiesField.setAccessible(true); Properties userProperties = (Properties) userPropertiesField.get(request); this.settings = getSettings(settingsBuilder, settings, properties, userProperties); } catch (NoSuchMethodException | NoSuchFieldException | IllegalAccessException | InvocationTargetException | InstantiationException e) { throw new RuntimeException(e); } try { localRepository = new File(this.settings.getLocalRepository()); localRepo = getMavenComponent(RepositorySystem.class).createLocalRepository(localRepository); } catch (InvalidRepositoryException e) { throw new RuntimeException(e); } }
From source file:org.jetbrains.idea.maven.server.Maven30ServerEmbedderImpl.java
License:Apache License
public Maven30ServerEmbedderImpl(MavenServerSettings settings) throws RemoteException { super(settings); File mavenHome = settings.getMavenHome(); if (mavenHome != null) { System.setProperty("maven.home", mavenHome.getPath()); }// w ww. j a v a2s . c o m myConsoleWrapper = new Maven3ServerConsoleLogger(); myConsoleWrapper.setThreshold(settings.getLoggingLevel()); ClassWorld classWorld = new ClassWorld("plexus.core", Thread.currentThread().getContextClassLoader()); MavenCli cli = new MavenCli(classWorld) { @Override protected void customizeContainer(PlexusContainer container) { ((DefaultPlexusContainer) container).setLoggerManager(new BaseLoggerManager() { @Override protected Logger createLogger(String s) { return myConsoleWrapper; } }); } }; Class cliRequestClass; try { cliRequestClass = MavenCli.class.getClassLoader().loadClass("org.apache.maven.cli.MavenCli$CliRequest"); } catch (ClassNotFoundException e) { throw new RuntimeException("Class \"org.apache.maven.cli.MavenCli$CliRequest\" not found"); } Object cliRequest; try { List<String> commandLineOptions = new ArrayList<String>(settings.getUserProperties().size()); for (Map.Entry<Object, Object> each : settings.getUserProperties().entrySet()) { commandLineOptions.add("-D" + each.getKey() + "=" + each.getValue()); } if (settings.getLoggingLevel() == MavenServerConsole.LEVEL_DEBUG) { commandLineOptions.add("-X"); commandLineOptions.add("-e"); } else if (settings.getLoggingLevel() == MavenServerConsole.LEVEL_DISABLED) { commandLineOptions.add("-q"); } String mavenEmbedderCliOptions = System .getProperty(MavenServerEmbedder.MAVEN_EMBEDDER_CLI_ADDITIONAL_ARGS); if (mavenEmbedderCliOptions != null) { commandLineOptions.addAll(MavenStringUtil.splitHonorQuotes(mavenEmbedderCliOptions, ' ')); } if (commandLineOptions.contains("-U") || commandLineOptions.contains("--update-snapshots")) { myAlwaysUpdateSnapshots = true; } //noinspection unchecked Constructor constructor = cliRequestClass.getDeclaredConstructor(String[].class, ClassWorld.class); constructor.setAccessible(true); //noinspection SSBasedInspection cliRequest = constructor.newInstance(commandLineOptions.toArray(new String[commandLineOptions.size()]), classWorld); for (String each : new String[] { "initialize", "cli", "logging", "properties", "container" }) { Method m = MavenCli.class.getDeclaredMethod(each, cliRequestClass); m.setAccessible(true); m.invoke(cli, cliRequest); } } catch (InstantiationException e) { throw new RuntimeException(e); } catch (NoSuchMethodException e) { throw new RuntimeException(e); } catch (IllegalAccessException e) { throw new RuntimeException(e); } catch (InvocationTargetException e) { throw new RuntimeException(e); } // reset threshold myContainer = FieldAccessor.get(MavenCli.class, cli, "container"); myContainer.getLoggerManager().setThreshold(settings.getLoggingLevel()); mySystemProperties = FieldAccessor.get(cliRequestClass, cliRequest, "systemProperties"); if (settings.getProjectJdk() != null) { mySystemProperties.setProperty("java.home", settings.getProjectJdk()); } myMavenSettings = buildSettings(FieldAccessor.<SettingsBuilder>get(MavenCli.class, cli, "settingsBuilder"), settings, mySystemProperties, FieldAccessor.<Properties>get(cliRequestClass, cliRequest, "userProperties")); myLocalRepository = createLocalRepository(); }
From source file:org.jetbrains.idea.maven.server.Maven32ServerEmbedderImpl.java
License:Apache License
public Maven32ServerEmbedderImpl(MavenServerSettings settings) throws RemoteException { super(settings); File mavenHome = settings.getMavenHome(); if (mavenHome != null) { System.setProperty("maven.home", mavenHome.getPath()); }//from w w w.jav a 2 s. c om myConsoleWrapper = new Maven3ServerConsoleLogger(); myConsoleWrapper.setThreshold(settings.getLoggingLevel()); ClassWorld classWorld = new ClassWorld("plexus.core", Thread.currentThread().getContextClassLoader()); MavenCli cli = new MavenCli(classWorld) { @Override protected void customizeContainer(PlexusContainer container) { ((DefaultPlexusContainer) container).setLoggerManager(new BaseLoggerManager() { @Override protected Logger createLogger(String s) { return myConsoleWrapper; } }); } }; SettingsBuilder settingsBuilder = null; Class cliRequestClass; try { cliRequestClass = MavenCli.class.getClassLoader().loadClass("org.apache.maven.cli.MavenCli$CliRequest"); } catch (ClassNotFoundException e) { try { cliRequestClass = MavenCli.class.getClassLoader().loadClass("org.apache.maven.cli.CliRequest"); // initialize maven.multiModuleProjectDirectory property to avoid failure in org.apache.maven.cli.MavenCli#initialize method System.setProperty("maven.multiModuleProjectDirectory", new File("").getPath()); settingsBuilder = new DefaultSettingsBuilderFactory().newInstance(); } catch (ClassNotFoundException e1) { throw new RuntimeException("unable to find maven CliRequest class"); } } Object cliRequest; try { List<String> commandLineOptions = new ArrayList<String>(settings.getUserProperties().size()); for (Map.Entry<Object, Object> each : settings.getUserProperties().entrySet()) { commandLineOptions.add("-D" + each.getKey() + "=" + each.getValue()); } if (settings.getLoggingLevel() == MavenServerConsole.LEVEL_DEBUG) { commandLineOptions.add("-X"); commandLineOptions.add("-e"); } else if (settings.getLoggingLevel() == MavenServerConsole.LEVEL_DISABLED) { commandLineOptions.add("-q"); } String mavenEmbedderCliOptions = System .getProperty(MavenServerEmbedder.MAVEN_EMBEDDER_CLI_ADDITIONAL_ARGS); if (mavenEmbedderCliOptions != null) { commandLineOptions.addAll(MavenStringUtil.splitHonorQuotes(mavenEmbedderCliOptions, ' ')); } if (commandLineOptions.contains("-U") || commandLineOptions.contains("--update-snapshots")) { myAlwaysUpdateSnapshots = true; } //noinspection unchecked Constructor constructor = cliRequestClass.getDeclaredConstructor(String[].class, ClassWorld.class); constructor.setAccessible(true); //noinspection SSBasedInspection cliRequest = constructor.newInstance(commandLineOptions.toArray(new String[commandLineOptions.size()]), classWorld); for (String each : new String[] { "initialize", "cli", "logging", "properties", "container" }) { Method m = MavenCli.class.getDeclaredMethod(each, cliRequestClass); m.setAccessible(true); m.invoke(cli, cliRequest); } } catch (Exception e) { throw new RuntimeException(e); } // reset threshold try { Method m = MavenCli.class.getDeclaredMethod("container", cliRequestClass); m.setAccessible(true); myContainer = (DefaultPlexusContainer) m.invoke(cli, cliRequest); } catch (Exception e) { throw new RuntimeException(e); } myContainer.getLoggerManager().setThreshold(settings.getLoggingLevel()); mySystemProperties = FieldAccessor.get(cliRequestClass, cliRequest, "systemProperties"); if (settings.getProjectJdk() != null) { mySystemProperties.setProperty("java.home", settings.getProjectJdk()); } if (settingsBuilder == null) { settingsBuilder = FieldAccessor.get(MavenCli.class, cli, "settingsBuilder"); } myMavenSettings = buildSettings(settingsBuilder, settings, mySystemProperties, FieldAccessor.<Properties>get(cliRequestClass, cliRequest, "userProperties")); myLocalRepository = createLocalRepository(); }
From source file:org.mule.module.maven.MavenConnector.java
License:Open Source License
@PostConstruct public void init() { this.classWorld = new ClassWorld("plexus.core", Thread.currentThread().getContextClassLoader()); this.mavenCli = new MavenCli(classWorld); }