Class NpxMojo

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

@Mojo(name="npx", defaultPhase=INITIALIZE, aggregator=true, requiresProject=false) public class NpxMojo extends AbstractCdsMojo
Execute an npx command on the CAP Java project.
Since:
1.25.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

    • NpxMojo

      public NpxMojo()
  • Method Details

    • execute

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

      public void setNpxExec(File npxExec)
      Gets called to inject parameter "npxExec".
      Parameters:
      npxExec - a File pointing to npx executable
    • setWorkingDirectory

      public void setWorkingDirectory(File workingDirectory)
      Gets called to inject parameter "workingDirectory".
      Parameters:
      workingDirectory - a File pointing to working directory
    • 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.