Class NpmMojo

java.lang.Object
org.apache.maven.plugin.AbstractMojo
com.sap.cds.maven.plugin.AbstractCdsMojo
com.sap.cds.maven.plugin.build.NpmMojo
All Implemented Interfaces:
CdsMojoLogger, org.apache.maven.plugin.ContextEnabled, org.apache.maven.plugin.Mojo

@Mojo(name="npm", defaultPhase=INITIALIZE, aggregator=true, requiresProject=false) public class NpmMojo extends AbstractCdsMojo
Execute an npm command on the CAP Java project. For example, it can be used to perform an npm install to install npm dependencies which are maintained in package.json.
Call mvn cds:npm -Darguments="..." or mvn com.sap.cds:cds-maven-plugin:npm -Darguments="..." to execute npm with given arguments.

Since:
1.7.0
  • Field Details

    • PROP_NODE_DIR

      protected static final String PROP_NODE_DIR
      See Also:
    • PROP_NODE_EXECUTABLE

      protected static final String PROP_NODE_EXECUTABLE
      See Also:
    • PROP_NPM_EXECUTABLE

      protected static final String PROP_NPM_EXECUTABLE
      See Also:
    • PROP_NPX_EXECUTABLE

      protected static final String PROP_NPX_EXECUTABLE
      See Also:
    • PARAM_NODE_DIR

      protected static final String PARAM_NODE_DIR
      See Also:
    • PARAM_NPX_EXECUTABLE

      protected static final String PARAM_NPX_EXECUTABLE
      See Also:
    • PARAM_NPM_EXECUTABLE

      protected static final String PARAM_NPM_EXECUTABLE
      See Also:
    • repositorySystemSession

      @Parameter(defaultValue="${repositorySystemSession}", required=true, readonly=true) protected org.eclipse.aether.RepositorySystemSession repositorySystemSession
      Defines settings and components that control the repository system.
  • Constructor Details

    • NpmMojo

      public NpmMojo()
  • Method Details

    • execute

      public void execute() throws org.apache.maven.plugin.MojoExecutionException
      Throws:
      org.apache.maven.plugin.MojoExecutionException
    • executeNpm

      protected void executeNpm(File workDir, File outputFile, String... args) throws IOException
      Throws:
      IOException
    • executeNpm

      protected String executeNpm(File workDir, int[] exitValues, String... args) throws IOException
      Throws:
      IOException
    • executeNpm

      protected String executeNpm(File workDir, String... args) throws IOException
      Throws:
      IOException
    • execute

      protected void execute(File workDir, File execFile, OutputStream outputStream, Map<String,String> additionalEnv, int[] exitValues, String... args) throws IOException
      Executes a program as child process.
      Parameters:
      workDir - the working directory of child process
      execFile - the executable to use
      outputStream - an optional standard output stream
      additionalEnv - additional environment variables, can be null
      exitValues - an optional list with exit values of the process to be considered successful, can be null
      args - an optional command line arguments passed to the process
      Throws:
      IOException - if an I/O exception occurred
      org.apache.commons.exec.ExecuteException - if process execution failed
    • findCdsWorkingDir

      protected File findCdsWorkingDir()
      Finds the cds working directory by going upwards and looking for a .cdsrc.json file. It stops at the top-most project directory.
      Returns:
      the cds working directory or null if not found.