List of usage examples for org.apache.maven.execution MavenExecutionRequest setNoSnapshotUpdates
MavenExecutionRequest setNoSnapshotUpdates(boolean noSnapshotUpdates);
From source file:org.sonatype.maven.shell.commands.maven.MavenCommand.java
License:Open Source License
public Object execute(final CommandContext context) throws Exception { assert context != null; IO io = context.getIo();/*from w w w . ja v a 2s . c om*/ Variables vars = context.getVariables(); if (version) { io.println(maven.getVersion()); return Result.SUCCESS; } // HACK: support --encrypt-master-password and --encrypt-password if (encryptMasterPassword != null || encryptPassword != null) { return doEncryptPassword(context); } System.setProperty(MavenSystem.MAVEN_HOME, vars.get(SHELL_HOME, File.class).getAbsolutePath()); MavenRuntimeConfiguration config = new MavenRuntimeConfiguration(); config.setBaseDirectory(vars.get(SHELL_USER_DIR, File.class)); if (file != null) { config.setPomFile(file); } if (profiles != null) { config.getProfiles().addAll(profiles); } if (quiet != null) { config.setQuiet(quiet); } if (debug != null) { config.setDebug(debug); } if (showVersion != null) { config.setShowVersion(showVersion); } if (props != null) { config.getProperties().putAll(props); } if (settingsFile != null) { config.setSettingsFile(settingsFile); } if (globalSettingsFile != null) { config.setGlobalSettingsFile(globalSettingsFile); } if (logFile != null) { config.setLogFile(logFile); } customize(config); MavenRuntime runtime = maven.create(config); MavenExecutionRequest request = runtime.create(); if (offline != null) { request.setOffline(offline); } if (goals != null) { request.setGoals(goals); } if (batch != null) { request.setInteractiveMode(!batch); } if (resumeFrom != null) { request.setResumeFrom(resumeFrom); } if (toolChainsFile != null) { request.setUserToolchainsFile(toolChainsFile); } if (showErrors != null) { request.setShowErrors(showErrors); } if (nonRecursive != null) { request.setRecursive(!nonRecursive); } if (updateSnapshots != null) { request.setUpdateSnapshots(updateSnapshots); } if (noSnapshotUpdates != null) { request.setNoSnapshotUpdates(noSnapshotUpdates); } if (selectedProjects != null) { request.setSelectedProjects(selectedProjects); } if (strictChecksums) { request.setGlobalChecksumPolicy(CHECKSUM_POLICY_FAIL); } if (laxChecksums) { request.setGlobalChecksumPolicy(CHECKSUM_POLICY_WARN); } if (failFast) { request.setReactorFailureBehavior(REACTOR_FAIL_FAST); } else if (failAtEnd) { request.setReactorFailureBehavior(REACTOR_FAIL_AT_END); } else if (failNever) { request.setReactorFailureBehavior(REACTOR_FAIL_NEVER); } if (alsoMake && !alsoMakeDependents) { request.setMakeBehavior(REACTOR_MAKE_UPSTREAM); } else if (!alsoMake && alsoMakeDependents) { request.setMakeBehavior(REACTOR_MAKE_DOWNSTREAM); } else if (alsoMake && alsoMakeDependents) { request.setMakeBehavior(REACTOR_MAKE_BOTH); } // Customize the plugin groups request.addPluginGroup("org.apache.maven.plugins"); request.addPluginGroup("org.codehaus.mojo"); request.addPluginGroup("com.sonatype.maven.plugins"); request.addPluginGroup("org.sonatype.maven.plugins"); // Setup output colorization StreamSet current = StreamJack.current(); StreamSet streams; if (color == null || color) { // Complain if the user asked for color and its not supported if (color != null && !io.getTerminal().isAnsiSupported()) { log.warn("ANSI color is not supported by the current terminal"); } streams = new StreamSet(current.in, new ColorizingStream(current.out), new ColorizingStream(current.err)); } else { streams = current; } config.setStreams(streams); StreamJack.register(streams); // Execute Maven int result = 0; try { result = runtime.execute(request); } finally { StreamJack.deregister(); // HACK: Not sure why, but we need to reset the terminal after some mvn builds io.getTerminal().reset(); } if (growl) { String cl = String.format("%s %s", getName(), Strings.join(context.getArguments(), " ")); if (result == 0) { growler.growl(Notifications.BUILD_PASSED, "BUILD SUCCESS", // TODO: i18n cl); } else { growler.growl(Notifications.BUILD_FAILED, "BUILD FAILURE", // TODO: i18n cl); } } return result; }