MPNSIS-9. nsis-plugin should not depend on dist props, should support deploy and install
git-svn-id: https://svn.apache.org/repos/asf/maven/maven-1/plugins/trunk@116114 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
113fe374e0
commit
794667cfe1
@ -21,6 +21,7 @@
|
|||||||
<project
|
<project
|
||||||
xmlns:j="jelly:core"
|
xmlns:j="jelly:core"
|
||||||
xmlns:ant="jelly:ant"
|
xmlns:ant="jelly:ant"
|
||||||
|
xmlns:artifact="artifact"
|
||||||
xmlns:license="license"
|
xmlns:license="license"
|
||||||
xmlns:maven="jelly:maven"
|
xmlns:maven="jelly:maven"
|
||||||
xmlns:util="jelly:util">
|
xmlns:util="jelly:util">
|
||||||
@ -32,14 +33,17 @@
|
|||||||
<goal name="nsis"
|
<goal name="nsis"
|
||||||
description="Generate NSIS Installer .exe"
|
description="Generate NSIS Installer .exe"
|
||||||
prereqs="nsis:installer">
|
prereqs="nsis:installer">
|
||||||
<ant:echo>Installer generated successfully</ant:echo>
|
|
||||||
</goal>
|
</goal>
|
||||||
|
|
||||||
<goal name="nsis:generate-project"
|
<goal name="nsis:generate-project"
|
||||||
description="Generate NSIS project.nsh file">
|
description="Generate NSIS project.nsh file">
|
||||||
<maven:get var="maven.dist.bin.assembly.dir" plugin="maven-dist-plugin" property="maven.dist.bin.assembly.dir"/>
|
|
||||||
<maven:param-check value="${maven.dist.bin.assembly.dir}" fail="true"
|
<!-- if maven.nsis.build.dir isn't specified, grab the dist setting -->
|
||||||
message="'maven.dist.bin.assembly.dir' must be specified. It is the directory containing files to be placed in the installer"/>
|
<j:if test="${context.getVariable('maven.nsis.build.dir') == null}">
|
||||||
|
<maven:get var="maven.nsis.build.dir" plugin="maven-dist-plugin" property="maven.dist.bin.assembly.dir"/>
|
||||||
|
</j:if>
|
||||||
|
<maven:param-check value="${maven.nsis.build.dir}" fail="true"
|
||||||
|
message="'maven.nsis.build.dir' must be specified. It is the directory containing files to be placed in the installer"/>
|
||||||
|
|
||||||
<mkdir dir="${maven.build.dir}"/>
|
<mkdir dir="${maven.build.dir}"/>
|
||||||
|
|
||||||
@ -80,14 +84,74 @@
|
|||||||
<j:if test="${!nsisExeFile.exists()}">
|
<j:if test="${!nsisExeFile.exists()}">
|
||||||
<fail>The NSIS executable '${maven.nsis.exe}' could not be found</fail>
|
<fail>The NSIS executable '${maven.nsis.exe}' could not be found</fail>
|
||||||
</j:if>
|
</j:if>
|
||||||
<maven:get var="maven.dist.dir" plugin="maven-dist-plugin" property="maven.dist.dir"/>
|
|
||||||
<mkdir dir="${maven.dist.dir}"/>
|
|
||||||
<!-- call makensis.exe with the setup.nsi file -->
|
<!-- call makensis.exe with the setup.nsi file -->
|
||||||
<ant:exec executable="${maven.nsis.exe}" failonerror="true">
|
<ant:exec executable="${maven.nsis.exe}" failonerror="true">
|
||||||
<arg value="/V2"/>
|
<arg value="/V2"/>
|
||||||
<arg value="${script}"/>
|
<arg value="${script}"/>
|
||||||
</ant:exec>
|
</ant:exec>
|
||||||
|
<ant:echo>Installer ${maven.build.dir}/${maven.nsis.final.name}.exe generated successfully</ant:echo>
|
||||||
</goal>
|
</goal>
|
||||||
|
|
||||||
|
<!-- ================================================================== -->
|
||||||
|
<!-- D E P L O Y S N A P S H O T -->
|
||||||
|
<!-- ================================================================== -->
|
||||||
|
|
||||||
|
<goal
|
||||||
|
name="nsis:deploy-snapshot"
|
||||||
|
prereqs="nsis:installer"
|
||||||
|
description="Deploy a snapshot exe to the remote repository">
|
||||||
|
|
||||||
|
<artifact:deploy-snapshot
|
||||||
|
artifact="${maven.build.dir}/${maven.nsis.final.name}.exe"
|
||||||
|
type="exe"
|
||||||
|
project="${pom}"
|
||||||
|
/>
|
||||||
|
</goal>
|
||||||
|
|
||||||
|
<!-- ================================================================== -->
|
||||||
|
<!-- D E P L O Y J A R -->
|
||||||
|
<!-- ================================================================== -->
|
||||||
|
|
||||||
|
<goal
|
||||||
|
name="nsis:deploy"
|
||||||
|
prereqs="nsis:installer"
|
||||||
|
description="Deploy an exe to the remote repository">
|
||||||
|
|
||||||
|
<artifact:deploy
|
||||||
|
artifact="${maven.build.dir}/${maven.nsis.final.name}.exe"
|
||||||
|
type="exe"
|
||||||
|
project="${pom}"
|
||||||
|
/>
|
||||||
|
</goal>
|
||||||
|
|
||||||
|
<!-- ================================================================== -->
|
||||||
|
<!-- I N S T A L L J A R -->
|
||||||
|
<!-- ================================================================== -->
|
||||||
|
|
||||||
|
<goal name="nsis:install" prereqs="nsis:installer"
|
||||||
|
description="Install the exe in the local repository">
|
||||||
|
|
||||||
|
<artifact:install
|
||||||
|
artifact="${maven.build.dir}/${maven.nsis.final.name}.exe"
|
||||||
|
type="exe"
|
||||||
|
project="${pom}"
|
||||||
|
/>
|
||||||
|
</goal>
|
||||||
|
|
||||||
|
<!-- ================================================================== -->
|
||||||
|
<!-- I N S T A L L S N A P S H O T -->
|
||||||
|
<!-- ================================================================== -->
|
||||||
|
|
||||||
|
<goal
|
||||||
|
name="nsis:install-snapshot" prereqs="nsis:installer"
|
||||||
|
description="Install a snapshot exe in the local repository">
|
||||||
|
|
||||||
|
<artifact:install-snapshot
|
||||||
|
artifact="${maven.build.dir}/${maven.nsis.final.name}.exe"
|
||||||
|
type="exe"
|
||||||
|
project="${pom}"
|
||||||
|
/>
|
||||||
|
</goal>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
|||||||
@ -43,3 +43,9 @@ maven.nsis.logo.position=left
|
|||||||
|
|
||||||
# size of the logo on the first page
|
# size of the logo on the first page
|
||||||
#maven.nsis.logo.widthHeight=
|
#maven.nsis.logo.widthHeight=
|
||||||
|
|
||||||
|
# directory containing contents to be bundled
|
||||||
|
maven.nsis.build.dir=
|
||||||
|
|
||||||
|
# name of generated exe
|
||||||
|
maven.nsis.final.name=${maven.final.name}
|
||||||
@ -21,7 +21,7 @@
|
|||||||
<pomVersion>3</pomVersion>
|
<pomVersion>3</pomVersion>
|
||||||
<name>Maven NSIS Plug-in</name>
|
<name>Maven NSIS Plug-in</name>
|
||||||
<artifactId>maven-nsis-plugin</artifactId>
|
<artifactId>maven-nsis-plugin</artifactId>
|
||||||
<currentVersion>1.2-SNAPSHOT</currentVersion>
|
<currentVersion>2.0-SNAPSHOT</currentVersion>
|
||||||
<organization/>
|
<organization/>
|
||||||
<description>A plugin to generate Win32 installer programs using NSIS</description>
|
<description>A plugin to generate Win32 installer programs using NSIS</description>
|
||||||
<shortDescription>NSIS Plugin for Maven</shortDescription>
|
<shortDescription>NSIS Plugin for Maven</shortDescription>
|
||||||
|
|||||||
@ -25,16 +25,16 @@
|
|||||||
<maven:get var="maven.license.licenseFile" plugin="maven-license-plugin" property="maven.license.licenseFile"/>
|
<maven:get var="maven.license.licenseFile" plugin="maven-license-plugin" property="maven.license.licenseFile"/>
|
||||||
<maven:makeAbsolutePath var="license" basedir="${basedir}" path="${maven.license.licenseFile}"/>
|
<maven:makeAbsolutePath var="license" basedir="${basedir}" path="${maven.license.licenseFile}"/>
|
||||||
<maven:makeAbsolutePath var="build" basedir="${basedir}" path="${maven.build.dir}"/>
|
<maven:makeAbsolutePath var="build" basedir="${basedir}" path="${maven.build.dir}"/>
|
||||||
<maven:makeAbsolutePath var="dist" basedir="${basedir}" path="${maven.dist.bin.assembly.dir}"/>
|
<maven:makeAbsolutePath var="dist" basedir="${basedir}" path="${maven.nsis.build.dir}"/>
|
||||||
<ant:tstamp />
|
<ant:tstamp />
|
||||||
; template for project details
|
; template for project details
|
||||||
; generated by ${user.name} from project.xml version ${pom.currentVersion}
|
; generated by ${user.name} from project.xml version ${pom.currentVersion}
|
||||||
; on date ${TODAY}, time ${TSTAMP}
|
; on date ${TODAY}, time ${TSTAMP}
|
||||||
|
|
||||||
!define PROJECT_BUILD_DIR "${build}"
|
!define PROJECT_BUILD_DIR "${build}"
|
||||||
!define PROJECT_DIST_BIN_DIR "${maven.dist.bin.assembly.dir}"
|
!define PROJECT_DIST_BIN_DIR "${maven.nsis.build.dir}"
|
||||||
!define PROJECT_DIST_DIR "${maven.dist.dir}"
|
!define PROJECT_DIST_DIR "${maven.build.dir}"
|
||||||
!define PROJECT_FINAL_NAME "${maven.final.name}"
|
!define PROJECT_FINAL_NAME "${maven.nsis.final.name}"
|
||||||
<util:available file="${license}">
|
<util:available file="${license}">
|
||||||
!define PROJECT_LICENSE_FILE "${license}"
|
!define PROJECT_LICENSE_FILE "${license}"
|
||||||
!define PROJECT_LICENSE_TEXT "${maven.nsis.license.text}"
|
!define PROJECT_LICENSE_TEXT "${maven.nsis.license.text}"
|
||||||
|
|||||||
@ -25,7 +25,8 @@
|
|||||||
</properties>
|
</properties>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
<release version="1.2-SNAPSHOT" date="In CVS">
|
<release version="2.0-SNAPSHOT" date="In CVS">
|
||||||
|
<action dev="dion" type="fix" due-to="Matthias Kerkhoff" issue="MPNSIS-9">Use maven.nsis.build.dir instead of maven.dist.assembly.dir.</action>
|
||||||
<action dev="dion" type="fix" due-to="Matthias Kerkhoff" issue="MPNSIS-8">Fail when makensis fails.</action>
|
<action dev="dion" type="fix" due-to="Matthias Kerkhoff" issue="MPNSIS-8">Fail when makensis fails.</action>
|
||||||
<action dev="dion" type="update">Rename <code>ORGANIZATION</code> constant to <code>PROJECT_ORGANIZATION</code>.</action>
|
<action dev="dion" type="update">Rename <code>ORGANIZATION</code> constant to <code>PROJECT_ORGANIZATION</code>.</action>
|
||||||
<action dev="dion" type="fix" due-to="Geoffrey">Check maven.nsis.exe exists before using it.</action>
|
<action dev="dion" type="fix" due-to="Geoffrey">Check maven.nsis.exe exists before using it.</action>
|
||||||
@ -43,7 +44,7 @@
|
|||||||
<code>PROJECT_DIST_DIR</code>constant to
|
<code>PROJECT_DIST_DIR</code>constant to
|
||||||
<code>PROJECT_DIST_BIN_DIR</code>, and define
|
<code>PROJECT_DIST_BIN_DIR</code>, and define
|
||||||
<code>PROJECT_DIST_DIR</code>to be
|
<code>PROJECT_DIST_DIR</code>to be
|
||||||
<code>${maven.dist.dir></code>
|
<code>${maven.dist.dir}</code>
|
||||||
</action>
|
</action>
|
||||||
<action dev="dion" type="update">Add docs on how the plugin process works</action>
|
<action dev="dion" type="update">Add docs on how the plugin process works</action>
|
||||||
<action dev="dion" type="update">Add some basic documentation</action>
|
<action dev="dion" type="update">Add some basic documentation</action>
|
||||||
|
|||||||
@ -83,9 +83,9 @@
|
|||||||
<table>
|
<table>
|
||||||
<tr><th>Constant</th> <th>Value</th></tr>
|
<tr><th>Constant</th> <th>Value</th></tr>
|
||||||
<tr><td>PROJECT_BUILD_DIR</td> <td>${maven.build.dir}</td></tr>
|
<tr><td>PROJECT_BUILD_DIR</td> <td>${maven.build.dir}</td></tr>
|
||||||
<tr><td>PROJECT_DIST_BIN_DIR</td> <td>${maven.dist.bin.assembly.dir}</td></tr>
|
<tr><td>PROJECT_DIST_BIN_DIR</td> <td>${maven.nsis.build.dir}</td></tr>
|
||||||
<tr><td>PROJECT_DIST_DIR</td> <td>${maven.dist.dir}</td></tr>
|
<tr><td>PROJECT_DIST_DIR</td> <td>${maven.build.dir}</td></tr>
|
||||||
<tr><td>PROJECT_FINAL_NAME</td> <td>${maven.final.name}</td></tr>
|
<tr><td>PROJECT_FINAL_NAME</td> <td>${maven.nsis.final.name}</td></tr>
|
||||||
<tr><td>PROJECT_LICENSE_FILE</td> <td>${maven.license.licenseFile}</td></tr>
|
<tr><td>PROJECT_LICENSE_FILE</td> <td>${maven.license.licenseFile}</td></tr>
|
||||||
<tr><td>PROJECT_LICENSE_TEXT</td> <td>${maven.nsis.license.text}</td></tr>
|
<tr><td>PROJECT_LICENSE_TEXT</td> <td>${maven.nsis.license.text}</td></tr>
|
||||||
<tr><td>PROJECT_LOGO</td> <td>${maven.nsis.logo}</td></tr>
|
<tr><td>PROJECT_LOGO</td> <td>${maven.nsis.logo}</td></tr>
|
||||||
|
|||||||
@ -11,12 +11,12 @@
|
|||||||
<answer>
|
<answer>
|
||||||
<p>
|
<p>
|
||||||
With the default templates, all the files from the directory denoted by the
|
With the default templates, all the files from the directory denoted by the
|
||||||
<code>maven.dist.bin.assembly.dir</code> property are installed,
|
<code>maven.nsis.build.dir</code> property are installed,
|
||||||
together with an uninstaller if the end-user so desires.
|
together with an uninstaller if the end-user so desires.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
If you call the dist goal before calling the nsis goal,
|
If you call the dist goal before calling the nsis goal, e.g. (maven dist nsis),
|
||||||
it will set the property correctly and generate files into that directory.
|
it will set the property correctly.
|
||||||
</p>
|
</p>
|
||||||
</answer>
|
</answer>
|
||||||
</faq>
|
</faq>
|
||||||
@ -82,15 +82,15 @@ maven.nsis.exe=C:/develop/build/NSIS/makensis.exe
|
|||||||
<faq id="troubleshooting.assemblyDir">
|
<faq id="troubleshooting.assemblyDir">
|
||||||
<question>
|
<question>
|
||||||
Why am I getting <code>org.apache.commons.jelly.JellyTagException: ...
|
Why am I getting <code>org.apache.commons.jelly.JellyTagException: ...
|
||||||
'maven.dist.bin.assembly.dir' must be specified ...</code>
|
'maven.nsis.build.dir' must be specified ...</code>
|
||||||
when I run the <code>nsis</code> goal?
|
when I run the <code>nsis</code> goal?
|
||||||
</question>
|
</question>
|
||||||
<answer>
|
<answer>
|
||||||
<p>
|
<p>
|
||||||
The nsis goal counts on the <code>maven.dist.bin.assembly.dir</code> property being set.
|
The nsis goal counts on the <code>maven.nsis.build.dir</code> property being set.
|
||||||
Normally the dist goal does this. You could also pass it in when running the goal, e.g.
|
You could also pass it in when running the goal, e.g.
|
||||||
</p>
|
</p>
|
||||||
<source>maven -Dmaven.dist.bin.assembly.dir=c:/develop/build/files nsis</source>
|
<source>maven -maven.nsis.build.dir=c:/develop/build/files nsis</source>
|
||||||
</answer>
|
</answer>
|
||||||
</faq>
|
</faq>
|
||||||
</part>
|
</part>
|
||||||
|
|||||||
@ -64,12 +64,13 @@
|
|||||||
<section name="Using the NSIS Plugin">
|
<section name="Using the NSIS Plugin">
|
||||||
<p>
|
<p>
|
||||||
The plugin creates an installation program from your <code>distribution</code>,
|
The plugin creates an installation program from your <code>distribution</code>,
|
||||||
as created by <code>maven dist</code>. The <code>dist</code> goal must be
|
as created by <code>maven dist</code>. The <code>dist</code> goal is usually
|
||||||
run before using the plugin.
|
run before using the plugin.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
Once you've run <code>dist</code>, run the <code>nsis</code> goal. This
|
Once you've run <code>dist</code>, or created your directory with the installation contents,
|
||||||
produces an executable in <code>${maven.build.dir}/${maven.final.name}.exe</code>
|
run the <code>nsis</code> goal. This produces an executable in
|
||||||
|
<code>${maven.build.dir}/${maven.nsis.final.name}.exe</code>
|
||||||
</p>
|
</p>
|
||||||
</section>
|
</section>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@ -27,7 +27,7 @@
|
|||||||
<body>
|
<body>
|
||||||
<section name="How it works">
|
<section name="How it works">
|
||||||
<p>
|
<p>
|
||||||
The process of creating an installer from your <code>${maven.dist.bin.dir}</code>
|
The process of creating an installer from your <code>${maven.nsis.build.dir}</code>
|
||||||
using the plugin is as follows:
|
using the plugin is as follows:
|
||||||
<ol>
|
<ol>
|
||||||
<li>
|
<li>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user