Last Published: 2009-03-27  | Version: 0.2.0-SNAPSHOT | Insight > Release Engineering

NsisProject

The Insight NSIS plugin generates NSIS script files using Velocity templates, however a number of the template values need to be filled in; some of which are obtained from the Maven project itself, but the rest need to be provided in the configuration below.

This configuration was designed to meet the needs of the Insight installer, the rest of the NSIS features may need expansion of the model in future versions.

<nsisProject>
  <projectInfo>
    <productName/>
    <productVersion/>
    <publisher/>
    <webSite/>
    <readmeFile/>
    <defaultInstallerLanguage/>
  </projectInfo>
  <installerSettings>
    <scriptName/>
    <outFile/>
    <installDir/>
    <installDirRegKey/>
    <showInstallerDetails/>
    <showUnInstallerDetails/>
    <uninstallerIcon/>
  </installerSettings>
  <muiInstallerSettings>
    <installerIcon/>
    <uninstallerIcon/>
    <useHeaderImage/>
    <headerImageBmp/>
  </muiInstallerSettings>
  <muiPages>
    <pageHeaderText/>
    <pageHeaderSubText/>
    <welcomePageSettings>
      <title/>
      <title3Lines/>
      <text/>
    </welcomePageSettings>
    <licensePageSettings>
      <licensePageSettings>
        <licenseFileDestination/>
        <licenseFile/>
        <textTop/>
        <textBottom/>
        <button/>
        <checkBox/>
        <checkboxText/>
        <radioButtons/>
        <radioButtonsTextAccept/>
        <radioButtonsTextDecline/>
      </licensePageSettings>
    </licensePageSettings>
    <componentsPageSettings>
      <textTop/>
      <textCompList/>
      <textInstType/>
      <textDescriptionTitle/>
      <textDescriptionInfo/>
    </componentsPageSettings>
    <directoryPageSettings>
      <textTop/>
      <textDestination/>
      <variable/>
      <verifyOnLeave/>
    </directoryPageSettings>
    <startMenuFolderPageSettings>
      <textTop/>
      <textCheckbox/>
      <defaultFolder/>
      <noDisable/>
      <registryRoot/>
      <registryKey/>
      <registryValueName/>
    </startMenuFolderPageSettings>
    <installationPageSettings>
      <finishHeaderText/>
      <finishHeaderSubText/>
      <abortHeaderText/>
      <abortHeaderSubText/>
    </installationPageSettings>
    <finishPageSettings>
      <title/>
      <title3Lines/>
      <text/>
      <textLarge/>
      <button/>
      <cancelEnabled/>
      <textReboot/>
      <textRebootNow/>
      <textRebootLater/>
      <rebootLaterDefault/>
      <run/>
      <runText/>
      <runParameters/>
      <runNotChecked/>
      <runFunction/>
      <showReadme/>
      <showReadmeText/>
      <showReadmeNotChecked/>
      <showReadmeFunction/>
      <link/>
      <linkLocation/>
      <linkColor/>
      <noRebootSupport/>
    </finishPageSettings>
    <uninstallConfirmPageSettings>
      <textTop/>
      <textLocation/>
    </uninstallConfirmPageSettings>
  </muiPages>
  <sections>
    <installTypes/>
    <sections>
      <section>
        <name/>
        <description/>
        <optional/>
        <bold/>
        <hidden/>
        <inInsTypes/>
        <fileSets>
          <fileSet>
            <directory/>
            <lineEnding/>
            <filtered/>
            <useStrictFiltering/>
            <useDefaultExcludes/>
            <outputDirectory/>
            <includes/>
            <excludes/>
            <fileMode/>
            <directoryMode/>
            <overWritePolicy/>
          </fileSet>
        </fileSets>
        <files>
          <file>
            <source/>
            <destName/>
            <lineEnding/>
            <filtered/>
            <useStrictFiltering/>
            <useDefaultExcludes/>
            <outputDirectory/>
            <includes/>
            <excludes/>
            <fileMode/>
            <directoryMode/>
            <overWritePolicy/>
          </file>
        </files>
        <dependencySets>
          <dependencySet>
            <outputFileNameMapping/>
            <unpack/>
            <unpackOptions>
              <includes/>
              <excludes/>
              <filtered/>
            </unpackOptions>
            <scope/>
            <useProjectArtifact/>
            <useProjectAttachments/>
            <useTransitiveDependencies/>
            <useTransitiveFiltering/>
            <useStrictFiltering/>
            <useDefaultExcludes/>
            <outputDirectory/>
            <includes/>
            <excludes/>
            <fileMode/>
            <directoryMode/>
            <overWritePolicy/>
          </dependencySet>
        </dependencySets>
        <shortcuts>
          <shortcut>
            <link/>
            <targetFile/>
            <parameters/>
            <icon/>
            <iconIndexNumber/>
            <startOptions/>
            <keyboardShortcut/>
            <description/>
          </shortcut>
        </shortcuts>
      </section>
    </sections>
  </sections>
  <functions>
    <useMutexForInstaller/>
    <multiInstallerInstanceMessage/>
    <functionDef>
      <name/>
      <definition/>
    </functionDef>
    <uninstallPrevVer/>
    <prevVerPresentPrompt/>
    <prevVerUninstallAbortMsg/>
    <prevVerUninstallFailMsg/>
    <uninstallConfirmPrompt/>
    <functionDef>
      <name/>
      <definition/>
    </functionDef>
    <uninstallSuccessMsg/>
  </functions>
</nsisProject>

nsisProject

The root Nsis Project. The rest of the information is described below.

Element Type Description
projectInfo ProjectInfo Contains the basic information about the project to create the root level information. If not provided, most of this informaiton can be derived from the pom.xml
installerSettings InstallerSettings General Installer Settings
muiInstallerSettings MuiInstallerSettings NSIS MUI Settings. See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
muiPages MuiPages The pages to display in the installer
sections InstallerSections The sections
functions Functions The installer initialization and un-installer initialization functions.

projectInfo

Contains the basic project information about the project.

Element Type Description
productName String The name of the product, if not provided, defaults to the artifactId in the pom.xml. However to maintain Windowz conventions, the first character is converted to the upper case.
productVersion String The version of the application. If not provided, defaults to the version in the pom.xml
publisher String The publisher of the application, if not provided, defaults to the organization/name from the pom
webSite String The product web site. If not provided, defaults to the url from the pom
readmeFile String The readme file
defaultInstallerLanguage String This is the language of the installer for single language installers and the default language for multi lingual installers. The value of this should be one of the available languages in the 'Contrib/Language files' directory of your NSIS Installation. The language name should be case sensitive. It defaults to 'English' if not set.
Default value is: English.

installerSettings

The Windows settings in use by the installer.

Element Type Description
scriptName String The name of the installer displayed by Windows. If not provided, this defaults to "${projectInfo.productName} ${projectInfo.productVersion}"
outFile String The output file name. If not specified, it will default to "${project.build.finalName}-setup.exe"
installDir String The default installation directory in use. Defaults to "$PROGRAMFILES\${projectInfo.publisher}\${projectInfo.productName}"
installDirRegKey String The directory the installer will check for installation directory. If not supplied, the default value used is "Software\Microsoft\Windows\CurrentVersion\App Paths\${projectInfo.productName}.exe". For more information see http://nsis.sourceforge.net/Docs/Chapter4.html#4.8.1.22
showInstallerDetails String See http://nsis.sourceforge.net/Docs/Chapter4.html#4.8.1.34. Valid values are hide, show and nevershow. Defaults to hide
showUnInstallerDetails String See http://nsis.sourceforge.net/Docs/Chapter4.html#4.8.1.35. Valid values are hide, show and nevershow. Defaults to hide
uninstallerIcon String The icon displayed on the Windows Add/Remove programs Section
Default value is: $INSTDIR\\${project.build.finalName}.exe.

muiInstallerSettings

The Windows settings in use by the Modern UI installer.

Element Type Description
installerIcon String The installer icon. If none is supplied, the default used will be ${NSISDIR}\Contrib\Graphics\Icons\modern-install-colorful.ico If specified, the path should be relative to the project root directory, or should be relative to a NSIS variable.
uninstallerIcon String The uninstaller icon. If none is supplied, the default used will be ${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall-colorful.ico If a value is specified, the path should be relative to the project root directory, or should be relative to a NSIS variable.
useHeaderImage boolean Flag to indicate if a configured header image is being used.
Default value is: false.
headerImageBmp String The location of the header image being used. It defaults to ${NSISDIR}\Contrib\Graphics\Header\win.bmp The recommended size of the image is 150x57 pixels. This property is read only if @useHeaderImage is set to true.

muiPages

List of MUI Pages. In the current version, all but the License page can occur only once. The page ordering also may be modifiable in a future release. The presence of a page element creates the page.

Element Type Description
pageHeaderText String Text to display on the header of the page. If not present, defaults to ${artifactid} ${version}
pageHeaderSubText String Sub text to display on the header of the page. If not present, defaults to ${organization.name}
welcomePageSettings WelcomePageSettings To add a newline to any of these texts, use \r\n instead of $\r$\n
licensePageSettings/licensePageSetting* List<LicensePageSettings> (Many) The details of the license page
componentsPageSettings ComponentsPageSettings To add a newline to any of these texts, use \r\n instead of $\r$\n
directoryPageSettings DirectoryPageSettings To add a newline to any of these texts, use \r\n instead of $\r$\n
startMenuFolderPageSettings StartMenuFolderPageSettings To add a newline to any of these texts, use \r\n instead of $\r$\n
installationPageSettings InstallationPageSettings To add a newline to any of these texts, use \r\n instead of $\r$\n
finishPageSettings FinishPageSettings To add a newline to any of these texts, use \r\n instead of $\r$\n
uninstallConfirmPageSettings UninstallConfirmPageSettings To add a newline to any of these texts, use \r\n instead of $\r$\n

welcomePageSettings

To add a newline to any of these texts, use \r\n instead of $\r$\n

Element Type Description
title String Title to display on the top of the page
title3Lines boolean Extra space for the title area
Default value is: false.
text String Text to display on the page

licensePageSettings

The description of the license page

Element Type Description
licenseFileDestination String The end destination of the license file
licenseFile String The location of the license file, should be relative to the project root or an absolute path.
textTop String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
textBottom String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
button String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
checkBox boolean See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
Default value is: false.
checkboxText String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
radioButtons boolean See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
Default value is: false.
radioButtonsTextAccept String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
radioButtonsTextDecline String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html

componentsPageSettings

Settings for the components page

Element Type Description
textTop String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
textCompList String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
textInstType String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
textDescriptionTitle String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
textDescriptionInfo String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html

directoryPageSettings

The Directory Page Settings

Element Type Description
textTop String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
textDestination String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
variable String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
verifyOnLeave boolean See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
Default value is: false.

startMenuFolderPageSettings

The settings for the start menu folder selection page

Element Type Description
textTop String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
textCheckbox String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
defaultFolder String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
noDisable boolean See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
Default value is: false.
registryRoot String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
registryKey String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
registryValueName String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html

installationPageSettings

Settings for the Installation Page

Element Type Description
finishHeaderText String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
finishHeaderSubText String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
abortHeaderText String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
abortHeaderSubText String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html

finishPageSettings

The settings of the finish page

Element Type Description
title String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
title3Lines boolean See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
Default value is: false.
text String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
textLarge boolean See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
Default value is: false.
button String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
cancelEnabled boolean See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
Default value is: false.
textReboot String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
textRebootNow String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
textRebootLater String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
rebootLaterDefault boolean See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
Default value is: false.
run String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html. Variables in this field will be expanded.
runText String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
runParameters String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
runNotChecked boolean See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
Default value is: false.
runFunction String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
showReadme String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
showReadmeText String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
showReadmeNotChecked boolean See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
Default value is: false.
showReadmeFunction String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
link String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
linkLocation String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
linkColor String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
noRebootSupport boolean See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
Default value is: false.

uninstallConfirmPageSettings

The settings about the un-install page

Element Type Description
textTop String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html
textLocation String See http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html

sections

Defines all the sections used in the installer

Element Type Description
installTypes/installType* List<String> (Many) The install types. Atleast one is required.
sections/section* List<Section> (Many) The sections in the installer

section

Defines a section

Element Type Description
name String The name of the section
description String The descriptive name of the section
Default value is: .
optional boolean Checks if the section is optional
Default value is: false.
bold boolean Indicates if the section is bold
Default value is: false.
hidden boolean Indicates if the section is hidden
Default value is: false.
inInsTypes/inInsType* List<String> (Many) This command specifies which install types (see InstType) the current section defaults to the enabled state in. For a read only section specify RO, or insert numbers for the corresponding InstType values with an 1 based index.
fileSets/fileSet* List<FileSet> (Many) Specifies which groups of files to include in the assembly. A fileSet is specified by providing one or more of <fileSet> subelements.
files/file* List<FileItem> (Many) Specifies which single files to include in the assembly. A file is specified by providing one or more of <file> subelements.
dependencySets/dependencySet* List<DependencySet> (Many) Specifies which dependencies to include in the assembly. A dependencySet is specified by providing one or more of <dependencySet> subelements.
shortcuts/shortcut* List<ShortCut> (Many) The shortcuts that need to be created in this section

fileSet

A fileSet allows the inclusion of groups of files into the assembly.

Element Type Description
directory String Sets the absolute or relative location from the module's directory. For example, "src/main/bin" would select this subdirectory of the project in which this dependency is defined.
lineEnding String Sets the line-endings of the files in this fileSet. Valid values:
  • "keep" - Preserve all line endings
  • "unix" - Use Unix-style line endings
  • "lf" - Use a single line-feed line endings
  • "dos" - Use DOS-style line endings
  • "crlf" - Use Carraige-return, line-feed line endings
filtered boolean Whether to filter symbols in the files as they are copied, using properties from the build configuration. (Since 2.2)
Default value is: false.
useStrictFiltering boolean When specified as true, any include/exclude patterns which aren't used to filter an actual artifact during assembly creation will cause the build to fail with an error. This is meant to highlight obsolete inclusions or exclusions, or else signal that the assembly descriptor is incorrectly configured. (Since 2.2)
Default value is: false.
useDefaultExcludes boolean Whether standard exclusion patterns, such as those matching CVS and Subversion metadata files, should be used when calculating the files affected by this set. For backward compatibility, the default value is true. (Since 2.2)
Default value is: true.
outputDirectory String Sets the output directory relative to the root of the root directory of the assembly. For example, "log" will put the specified files in the log directory.
includes/include* List<String> (Many) When <include> subelements are present, they define a set of files and directory to include. If none is present, then <includes> represents all valid values.
excludes/exclude* List<String> (Many) When <exclude> subelements are present, they define a set of files and directory to exclude. If none is present, then <excludes> represents no exclusions.
fileMode String Similar to a UNIX permission, sets the file mode of the files included. Format: (User)(Group)(Other) where each component is a sum of Read = 4, Write = 2, and Execute = 1. For example, the default value of 0644 translates to User read-write, Group and Other read-only. (more on unix-style permissions)
Default value is: 0644.
directoryMode String Similar to a UNIX permission, sets the directory mode of the directories included. Format: (User)(Group)(Other) where each component is a sum of Read = 4, Write = 2, and Execute = 1. For example, the default value of 0755 translates to User read-write, Group and Other read-only. (more on unix-style permissions)
Default value is: 0755.
overWritePolicy String The SetOverwrite directive policy

file

A file allows individual file inclusion with the option to change the destination filename not supported by fileSets.

Element Type Description
source String Sets the absolute or relative path from the module's directory of the file to be included in the assembly.
destName String Sets the destination filename in the outputDirectory. Default is the same name as the source's file.
lineEnding String Sets the line-endings of the files in this file. Valid values are:
  • "keep" - Preserve all line endings
  • "unix" - Use Unix-style line endings
  • "lf" - Use a single line-feed line endings
  • "dos" - Use DOS-style line endings
  • "crlf" - Use Carraige-return, line-feed line endings
filtered boolean Sets whether to determine if the file is filtered.
Default value is: false.
useStrictFiltering boolean When specified as true, any include/exclude patterns which aren't used to filter an actual artifact during assembly creation will cause the build to fail with an error. This is meant to highlight obsolete inclusions or exclusions, or else signal that the assembly descriptor is incorrectly configured. (Since 2.2)
Default value is: false.
useDefaultExcludes boolean Whether standard exclusion patterns, such as those matching CVS and Subversion metadata files, should be used when calculating the files affected by this set. For backward compatibility, the default value is true. (Since 2.2)
Default value is: true.
outputDirectory String Sets the output directory relative to the root of the root directory of the assembly. For example, "log" will put the specified files in the log directory.
includes/include* List<String> (Many) When <include> subelements are present, they define a set of files and directory to include. If none is present, then <includes> represents all valid values.
excludes/exclude* List<String> (Many) When <exclude> subelements are present, they define a set of files and directory to exclude. If none is present, then <excludes> represents no exclusions.
fileMode String Similar to a UNIX permission, sets the file mode of the files included. Format: (User)(Group)(Other) where each component is a sum of Read = 4, Write = 2, and Execute = 1. For example, the default value of 0644 translates to User read-write, Group and Other read-only. (more on unix-style permissions)
Default value is: 0644.
directoryMode String Similar to a UNIX permission, sets the directory mode of the directories included. Format: (User)(Group)(Other) where each component is a sum of Read = 4, Write = 2, and Execute = 1. For example, the default value of 0755 translates to User read-write, Group and Other read-only. (more on unix-style permissions)
Default value is: 0755.
overWritePolicy String The SetOverwrite directive policy

dependencySet

A dependencySet allows inclusion and exclusion of project dependencies in the assembly. Though includes and excludes are supported when using dependency sets, note however that they need to be specified as groupId:artifactId combination

Element Type Description
outputFileNameMapping String Sets the mapping pattern for all dependencies included in this assembly. Default is ${artifact.artifactId}-${artifact.version}${dashClassifier?}.${artifact.extension}. (Since 2.2-beta-2; 2.2-beta-1 uses ${artifactId}-${version}${dashClassifier?}.${extension})
Default value is: ${artifact.artifactId}-${artifact.version}${dashClassifier?}.${artifact.extension}.
unpack boolean If set to true, this property will unpack all dependencies into the specified output directory. When set to false dependencies will be includes as archives (jars). Can only unpack jar, zip, tar.gz, and tar.bz archives. Default value is false.
Default value is: false.
unpackOptions UnpackOptions Allows the specification of includes and excludes, along with filtering options, for items unpacked from a dependency artifact. (Since 2.2)
scope String Sets the dependency scope for this dependencySet. Default scope value is "runtime".
Default value is: runtime.
useProjectArtifact boolean Determines whether the artifact produced during the current project's build should be included in this dependency set. Default value is true, for backward compatibility. (Since 2.2)
Default value is: true.
useProjectAttachments boolean Determines whether the attached artifacts produced during the current project's build should be included in this dependency set. Default value is false. (Since 2.2)
Default value is: false.
useTransitiveDependencies boolean Determines whether transitive dependencies will be included in the processing of the current dependency set. If true, includes/excludes/useTransitiveFiltering will apply to transitive dependency artifacts in addition to the main project dependency artifacts. If false, useTransitiveFiltering is meaningless, and includes/excludes only affect the immediate dependencies of the project. By default, this value is true. (Since 2.2)
Default value is: true.
useTransitiveFiltering boolean Determines whether the include/exclude patterns in this dependency set will be applied to the transitive path of a given artifact. If true, and the current artifact is a transitive dependency brought in by another artifact which matches an inclusion or exclusion pattern, then the current artifact has the same inclusion/exclusion logic applied to it as well. By default, this value is false, in order to preserve backward compatibility with version 2.1. This means that includes/excludes only apply directly to the current artifact, and not to the transitive set of artifacts which brought it in. (Since 2.2)
Default value is: false.
useStrictFiltering boolean When specified as true, any include/exclude patterns which aren't used to filter an actual artifact during assembly creation will cause the build to fail with an error. This is meant to highlight obsolete inclusions or exclusions, or else signal that the assembly descriptor is incorrectly configured. (Since 2.2)
Default value is: false.
useDefaultExcludes boolean Whether standard exclusion patterns, such as those matching CVS and Subversion metadata files, should be used when calculating the files affected by this set. For backward compatibility, the default value is true. (Since 2.2)
Default value is: true.
outputDirectory String Sets the output directory relative to the root of the root directory of the assembly. For example, "log" will put the specified files in the log directory.
includes/include* List<String> (Many) When <include> subelements are present, they define a set of files and directory to include. If none is present, then <includes> represents all valid values.
excludes/exclude* List<String> (Many) When <exclude> subelements are present, they define a set of files and directory to exclude. If none is present, then <excludes> represents no exclusions.
fileMode String Similar to a UNIX permission, sets the file mode of the files included. Format: (User)(Group)(Other) where each component is a sum of Read = 4, Write = 2, and Execute = 1. For example, the default value of 0644 translates to User read-write, Group and Other read-only. (more on unix-style permissions)
Default value is: 0644.
directoryMode String Similar to a UNIX permission, sets the directory mode of the directories included. Format: (User)(Group)(Other) where each component is a sum of Read = 4, Write = 2, and Execute = 1. For example, the default value of 0755 translates to User read-write, Group and Other read-only. (more on unix-style permissions)
Default value is: 0755.
overWritePolicy String The SetOverwrite directive policy

unpackOptions

Specifies options for including/excluding/filtering items extracted from an archive. (Since 2.2)

Element Type Description
includes/include* List<String> (Many) Set of patterns for matching items to be included from an archive as it is unpacked. (Since 2.2)
excludes/exclude* List<String> (Many) Set of patterns for matching items to be excluded from an archive as it is unpacked. (Since 2.2)
filtered boolean Whether to filter symbols in the files as they are unpacked from the archive, using properties from the build configuration. (Since 2.2)
Default value is: false.

shortcut

Create Short Cuts

Element Type Description
link String The link with the complete path. For start menu items start the link with $SMPROGRAMS\$ICONS_GROUP\Link Name.lnk. For desktop shortcuts start with $DESKTOP.
targetFile String The target file that will be opened by the link. This will be variable resolved. For paths relative to the install directory start the path with $INSTDIR
parameters String The parameters to pass to the target
Default value is: .
icon String The icon file
Default value is: .
iconIndexNumber String The index in a multi icon file
Default value is: .
startOptions String The startup options. The supported options are: SW_SHOWNORMAL, SW_SHOWMAXIMIZED, SW_SHOWMINIMIZED
Default value is: .
keyboardShortcut String The keyboard shortcut. should be in the form of 'flag|c' where flag can be a combination (using |) of: ALT, CONTROL, EXT, or SHIFT. c is the character to use (a-z, A-Z, 0-9, F1-F24, etc). Note that no spaces are allowed in this string. A good example is "ALT|CONTROL|F8"
Default value is: .
description String The description of the link
Default value is: .

functions

Contains information about init functions for the installer and the uninstaller.

Element Type Description
useMutexForInstaller boolean Indicates if a mutex is to be used to ensure a single instance of the installer
Default value is: true.
multiInstallerInstanceMessage String The message to display when more than one instance of the installer is running.
Default value is: The installer is already running..
installAppRunCheckFn FunctionDefinition User defined function to check if the application is running when the installer starts. If the value is not specified the check is not performed.
uninstallPrevVer boolean If set to true, the installer will try to identify and uninstall any previous version of the application.
Default value is: true.
prevVerPresentPrompt String The prompt to the user when a previous version of the application is found. This values is used only when uninstallPreviousVersion is set to true
Default value is: ${PRODUCT_NAME} is already installed. $\\n$\\nClick OK to remove the previous version or Cancel to cancel this upgrade..
prevVerUninstallAbortMsg String Message displayed when the uninstall of the previous version is aborted by the user.
Default value is: Aborting ${PRODUCT_NAME} ${PRODUCT_VERSION} Install..
prevVerUninstallFailMsg String Message displayed when the uninstall of the previous version fails
Default value is: ${PRODUCT_NAME} could not be uninstalled properly. Please manually uninstall the application before installing the new version..
uninstallConfirmPrompt String The prompt displayed to the user when the uninstaller is invoked.
Default value is: Are you sure you want to completely remove $(^Name) and all of its components?.
uninstallAppRunCheckFn FunctionDefinition User defined function to check if the application is running when the uninstaller starts. If the value is not specified the check is not performed.
uninstallSuccessMsg String Message displayed after successfully uninstalling the application.
Default value is: $(^Name) was successfully removed from your computer..

functionDef

A user defined function

Element Type Description
name String The name of the function
definition String The function Definition
Maven NSIS Plugin
Configuration Reference
  • NSIS Project Xref
Examples
Release - 0.1.0
Project Documentation
Parent Project