@Override public void configure(final Env env, final Config conf, final Binder binder) throws Throwable { Path userdir = Paths.get(System.getProperty("user.dir")); Path workDirectory = Optional.ofNullable(this.workDirectory) .orElse(userdir); Path installDirectory = Optional.ofNullable(this.installDirectory).orElse(workDirectory); ProxyConfig proxy = new ProxyConfig(proxies(conf)); CacheResolver cache = Files.exists(userdir.resolve("pom.xml")) ? new MavenCacheResolver() : null; FrontendPluginFactory factory = new FrontendPluginFactory(workDirectory.toFile(), installDirectory.toFile(), cache); installNode(conf, nodeVersion, proxy, factory); Map<String, String> environment = environment(conf); NodeTask task = newTask(factory, conf, proxy, environment, nodeVersion); onSyncPackageJson(conf, workDirectory, task::executeSync); if (onStart == null && onStarted == null) { onStart = cmd -> cmd.execute("run", "build"); } if (onStart != null) { env.onStart(() -> onStart.accept(task)); } if (onStarted != null) { env.onStarted(() -> onStarted.accept(task)); } }
@Override public void execute(FrontendPluginFactory factory) throws InstallationException { ProxyConfig proxyConfig = MojoUtils.getProxyConfig(this.session, this.decrypter); Server server = MojoUtils.decryptServer(this.serverId, this.session, this.decrypter); if (null != server) { factory.getNodeInstaller(proxyConfig).setNodeDownloadRoot(this.nodeDownloadRoot) .setNodeVersion(this.nodeVersion).setPassword(server.getPassword()) .setUserName(server.getUsername()).install(); factory.getYarnInstaller(proxyConfig).setYarnDownloadRoot(this.yarnDownloadRoot) .setYarnVersion(this.yarnVersion).setUserName(server.getUsername()) .setPassword(server.getPassword()).install(); } else { factory.getNodeInstaller(proxyConfig).setNodeDownloadRoot(this.nodeDownloadRoot) .setNodeVersion(this.nodeVersion).install(); factory.getYarnInstaller(proxyConfig).setYarnDownloadRoot(this.yarnDownloadRoot) .setYarnVersion(this.yarnVersion).install(); } }
@Override protected NodeTask newTask(FrontendPluginFactory factory, Config conf, ProxyConfig proxy, Map<String, String> env, String nodeVersion) throws InstallationException { Function<String, String> property = key -> conf.hasPath(key) ? conf.getString(key) : null; factory.getNPMInstaller(proxy) .setNpmVersion(npmVersion) .setNodeVersion(nodeVersion) .setNpmDownloadRoot(conf.getString("npm.downloadRoot")) .setUserName(property.apply("npm.username")) .setPassword(property.apply("npm.password")) .install(); NpmRunner npm = factory.getNpmRunner(proxy, conf.getString("npm.registryURL")); return (cmd, args) -> { String cmdline = cmd + " " + Arrays.asList(args).stream().collect(Collectors.joining(" ")); npm.execute(cmdline, env); }; }
@Override protected NodeTask newTask(FrontendPluginFactory factory, Config conf, ProxyConfig proxy, Map<String, String> env, String nodeVersion) throws InstallationException { Function<String, String> property = key -> conf.hasPath(key) ? conf.getString(key) : null; factory.getYarnInstaller(proxy) .setYarnVersion(yarnVersion) .setYarnDownloadRoot(conf.getString("yarn.downloadRoot")) .setUserName(property.apply("yarn.username")) .setPassword(property.apply("yarn.password")) .install(); YarnRunner yarn = factory.getYarnRunner(proxy, conf.getString("npm.registryURL")); return (cmd, args) -> { String cmdline = cmd + " " + Arrays.asList(args).stream().collect(Collectors.joining(" ")); yarn.execute(cmdline, env); }; }
private YarnRunner downloadYarn(File workingDirectory, ProxyConfig proxyConfig, String npmRegistryUrl, String yarnVersion) { FrontendPluginFactory factory = new FrontendPluginFactory( workingDirectory, workingDirectory); try { factory.getYarnInstaller(proxyConfig).setYarnVersion(yarnVersion) .setYarnDownloadRoot( YarnInstaller.DEFAULT_YARN_DOWNLOAD_ROOT) .install(); } catch (InstallationException e) { throw new IllegalStateException("Failed to download yarn", e); } return factory.getYarnRunner(proxyConfig, validateUrl(npmRegistryUrl)); }
private GulpRunner downloadNode(File workingDirectory, ProxyConfig proxyConfig, String nodeVersion) { FrontendPluginFactory factory = new FrontendPluginFactory( workingDirectory, workingDirectory); try { factory.getNodeInstaller(proxyConfig).setNodeVersion(nodeVersion) .setNodeDownloadRoot( NodeInstaller.DEFAULT_NODEJS_DOWNLOAD_ROOT) .install(); } catch (InstallationException e) { throw new IllegalStateException("Failed to download node", e); } return factory.getGulpRunner(); }
Server server = MojoUtils.decryptServer(serverId, session, decrypter); if (null != server) { factory.getNodeInstaller(proxyConfig) .setNodeVersion(nodeVersion) .setNodeDownloadRoot(nodeDownloadRoot) .setPassword(server.getPassword()) .install(); factory.getNPMInstaller(proxyConfig) .setNodeVersion(nodeVersion) .setNpmVersion(npmVersion) .install(); } else { factory.getNodeInstaller(proxyConfig) .setNodeVersion(nodeVersion) .setNodeDownloadRoot(nodeDownloadRoot) .setNpmVersion(npmVersion) .install(); factory.getNPMInstaller(proxyConfig) .setNodeVersion(this.nodeVersion) .setNpmVersion(this.npmVersion)
@Override public void execute(FrontendPluginFactory factory) throws TaskRunnerException { File packageJson = new File(workingDirectory, "package.json"); if (buildContext == null || buildContext.hasDelta(packageJson) || !buildContext.isIncremental()) { ProxyConfig proxyConfig = getProxyConfig(); factory.getNpmRunner(proxyConfig, getRegistryUrl()).execute(arguments, environmentVariables); } else { getLog().info("Skipping npm install as package.json unchanged"); } }
@Override public void execute(FrontendPluginFactory factory) throws TaskRunnerException { File packageJson = new File(this.workingDirectory, "package.json"); if (this.buildContext == null || this.buildContext.hasDelta(packageJson) || !this.buildContext.isIncremental()) { ProxyConfig proxyConfig = getProxyConfig(); factory.getYarnRunner(proxyConfig, getRegistryUrl()).execute(this.arguments, this.environmentVariables); } else { getLog().info("Skipping yarn install as package.json unchanged"); } }
private void installNode(Config conf, String version, ProxyConfig proxy, FrontendPluginFactory factory) throws InstallationException { NodeInstaller installer = factory.getNodeInstaller(proxy) .setNodeVersion(version) .setNodeDownloadRoot(conf.getString("node.downloadRoot")); installNpm(installer); installer.install(); }
@Override public void execute(FrontendPluginFactory factory) throws TaskRunnerException { if (shouldExecute()) { factory.getGulpRunner().execute(arguments, environmentVariables); if (outputdir != null) { getLog().info("Refreshing files after gulp: " + outputdir); buildContext.refresh(outputdir); } } else { getLog().info("Skipping gulp as no modified files in " + srcdir); } }
Server server = MojoUtils.decryptServer(serverId, session, decrypter); if (null != server) { factory.getNodeInstaller(proxyConfig) .setNodeVersion(nodeVersion) .setNodeDownloadRoot(nodeDownloadRoot) .setPassword(server.getPassword()) .install(); factory.getNPMInstaller(proxyConfig) .setNodeVersion(nodeVersion) .setNpmVersion(npmVersion) .install(); } else { factory.getNodeInstaller(proxyConfig) .setNodeVersion(nodeVersion) .setNodeDownloadRoot(nodeDownloadRoot) .setNpmVersion(npmVersion) .install(); factory.getNPMInstaller(proxyConfig) .setNodeVersion(this.nodeVersion) .setNpmVersion(this.npmVersion)
/** * Configures the NPM registry location. * * @param node the node manager * @param log the logger * @param npmRegistryUrl the registry url */ public static void configureRegistry(NodeManager node, Log log, String npmRegistryUrl) { try { node.factory().getNpmRunner(node.proxy()).execute("config set registry " + npmRegistryUrl); } catch (TaskRunnerException e) { log.error("Error during the configuration of NPM registry with the url " + npmRegistryUrl + " - check log", e); } }
@Override public void execute(FrontendPluginFactory factory) throws TaskRunnerException { File packageJson = new File(this.workingDirectory, "package.json"); if (this.buildContext == null || this.buildContext.hasDelta(packageJson) || !this.buildContext.isIncremental()) { ProxyConfig proxyConfig = getProxyConfig(); factory.getYarnRunner(proxyConfig, getRegistryUrl()).execute(this.arguments, this.environmentVariables); } else { getLog().info("Skipping yarn install as package.json unchanged"); } }
@Override public void execute(FrontendPluginFactory factory) throws TaskRunnerException { if (shouldExecute()) { factory.getGulpRunner().execute(arguments, environmentVariables); if (outputdir != null) { getLog().info("Refreshing files after gulp: " + outputdir); buildContext.refresh(outputdir); } } else { getLog().info("Skipping gulp as no modified files in " + srcdir); } }
@Override public void execute(FrontendPluginFactory factory) throws InstallationException { ProxyConfig proxyConfig = MojoUtils.getProxyConfig(this.session, this.decrypter); Server server = MojoUtils.decryptServer(this.serverId, this.session, this.decrypter); if (null != server) { factory.getNodeInstaller(proxyConfig).setNodeDownloadRoot(this.nodeDownloadRoot) .setNodeVersion(this.nodeVersion).setPassword(server.getPassword()) .setUserName(server.getUsername()).install(); factory.getYarnInstaller(proxyConfig).setYarnDownloadRoot(this.yarnDownloadRoot) .setYarnVersion(this.yarnVersion).setUserName(server.getUsername()) .setPassword(server.getPassword()).install(); } else { factory.getNodeInstaller(proxyConfig).setNodeDownloadRoot(this.nodeDownloadRoot) .setNodeVersion(this.nodeVersion).install(); factory.getYarnInstaller(proxyConfig).setYarnDownloadRoot(this.yarnDownloadRoot) .setYarnVersion(this.yarnVersion).install(); } }
@Override public void execute() throws MojoFailureException { if (testFailureIgnore && !isTestingPhase()) { getLog().info("testFailureIgnore property is ignored in non test phases"); } if (!(skipTestPhase() || skipExecution())) { if (installDirectory == null) { installDirectory = workingDirectory; } try { execute(new FrontendPluginFactory(workingDirectory, installDirectory, new RepositoryCacheResolver(repositorySystemSession))); } catch (TaskRunnerException e) { if (testFailureIgnore && isTestingPhase()) { getLog().error("There are test failures.\nFailed to run task: " + e.getMessage(), e); } else { throw new MojoFailureException("Failed to run task", e); } } catch (FrontendException e) { throw MojoUtils.toMojoFailureException(e); } } else { getLog().info("Skipping execution."); } }
node.factoryForNPMInstallation().getNpmRunner(node.proxy()).execute(command.toString()); } catch (TaskRunnerException e) { log.error("Error during the installation of the NPM " + npmName + " - check log", e);
public NodeManager(Log log, File nodeDirectory, AbstractWisdomMojo mojo) { this.factory = new FrontendPluginFactory(mojo.basedir, nodeDirectory); this.npmInstallationFactory = new FrontendPluginFactory(nodeDirectory, nodeDirectory); this.nodeDirectory = nodeDirectory; this.mojo = mojo; if (!nodeDirectory.exists()) { nodeDirectory.mkdirs(); } }
@Override public void execute(FrontendPluginFactory factory) throws TaskRunnerException { File packageJson = new File(workingDirectory, "package.json"); if (buildContext == null || buildContext.hasDelta(packageJson) || !buildContext.isIncremental()) { ProxyConfig proxyConfig = getProxyConfig(); factory.getNpmRunner(proxyConfig, getRegistryUrl()).execute(arguments, environmentVariables); } else { getLog().info("Skipping npm install as package.json unchanged"); } }