Class WixV4CommandBuilder

java.lang.Object
com.github.wix_maven.WixV4CommandBuilder
All Implemented Interfaces:
WixToolsetCommandBuilder

public class WixV4CommandBuilder extends Object implements WixToolsetCommandBuilder
WixToolsetCommandBuilder implementation for WiX Toolset v4 and later.

WiX v4+ uses a single unified wix.exe CLI located at the root of the tools archive. Operations that were separate executables in v3 (candle, light, lit, heat, …) are now subcommands of wix.exe. Extensions are NuGet-package-id strings passed as -ext <name>.

Compile and link steps are unified into a single wix build invocation; the CandleMojo becomes a no-op preparation step in v4 mode and LightMojo/ LitMojo issue the combined wix build command.

  • Constructor Details

    • WixV4CommandBuilder

      public WixV4CommandBuilder()
  • Method Details

    • getToolSubdirectory

      public String getToolSubdirectory()
      Description copied from interface: WixToolsetCommandBuilder
      The subdirectory inside the unpacked tools archive that contains the WiX executables.
      • v3 → "bin"
      • v4 → "" (root of the archive)
      Specified by:
      getToolSubdirectory in interface WixToolsetCommandBuilder
      Returns:
      tool subdirectory relative to the unpacked tool root.
    • resolveToolExecutable

      public File resolveToolExecutable(File toolDirectory, String toolName)
      Description copied from interface: WixToolsetCommandBuilder
      Resolve the absolute path to a named WiX tool executable.
      Specified by:
      resolveToolExecutable in interface WixToolsetCommandBuilder
      Parameters:
      toolDirectory - the root directory where WiX tools were unpacked
      toolName - logical name (e.g. "candle", "light", "heat")
      Returns:
      the File pointing at the executable; existence is not guaranteed
    • addGeneralOptions

      public void addGeneralOptions(org.codehaus.plexus.util.cli.Commandline cl, boolean verbose, Set<String> suppress, Set<String> warn)
      Description copied from interface: WixToolsetCommandBuilder
      Append general toolset options to the command line.
      • v3: -nologo, -s<N>, -w<N>
      • v4: equivalent flags on the unified CLI where supported
      Specified by:
      addGeneralOptions in interface WixToolsetCommandBuilder
      Parameters:
      cl - the command line to augment
      verbose - when true the logo/banner is shown; suppress -nologo if so
      suppress - set of suppression tokens (may be null)
      warn - set of warning-as-error tokens (may be null)
    • addExtensions

      public void addExtensions(org.codehaus.plexus.util.cli.Commandline cl, Set<org.apache.maven.artifact.Artifact> extArtifacts, Set<String> wixExtensions) throws org.apache.maven.plugin.MojoExecutionException
      Description copied from interface: WixToolsetCommandBuilder
      Append WiX extension references to the command line.
      • v3: -ext <path-to-dll> — resolved from Maven wixext artifacts
      • v4: -ext <NuGet-package-id> — resolved from wixExtensions strings
      Specified by:
      addExtensions in interface WixToolsetCommandBuilder
      Parameters:
      cl - the command line to augment
      extArtifacts - Maven wixext artifacts (used by v3; may be empty in v4 mode)
      wixExtensions - v4-style NuGet extension names (used by v4; ignored in v3 mode)
      Throws:
      org.apache.maven.plugin.MojoExecutionException - if artifact resolution fails
    • isUnifiedBuild

      public boolean isUnifiedBuild()
      Description copied from interface: WixToolsetCommandBuilder
      Whether this toolset version uses a unified compile+link command (v4) rather than separate candle and light invocations (v3).
      Specified by:
      isUnifiedBuild in interface WixToolsetCommandBuilder
      Returns:
      true when unified build mode is used.