我已经为我的java项目创建了NSIS脚本。我已经在我的eclipse.using插件中安装了nsis插件我创建了nsi文件。现在我想编译nsi文件。我试图在eclipse中使用Ant。
<?xml version="1.0" encoding="UTF-8"?>
<project name="test" default="nsis" basedir=".">
<property name="build.path" value="build"/>
<property name="deploy.dir" value="/opt/test"></property>
<path id="library.classpath">
<fileset dir="lib">
<include name="nsisant-1.2.jar"/>
</fileset>
</path>
<target name="nsis" description="compile nsis script">
<mkdir dir="${build.path}/nsis"/>
<nsis script="setup.nsi">
<classpath refid="library.classpath"/>
</nsis>
</target>
</project>
但它会引发跟随错误。
BUILD FAILED
build.xml:12: Problem: failed to create task or type nsis
Cause: The name is undefined.
Action: Check the spelling.
Action: Check that any custom tasks/types have been declared.
Action: Check that any <presetdef>/<macrodef> declarations have taken place.
我不知道为什么会这样?如何使用ant编译nsi文件?或者有没有其他方法可以在不使用ant的情况下进行编译?
答案 0 :(得分:2)
使用专用的nsis
任务似乎是最好的方法,但也许不是最简单的方法。我只是使用这样的语法执行makensis.exe
:
<exec executable="C:\Program_Files\NSIS\makensis.exe" failonerror="true" >
<!-- providing some nsis definitions -->
<arg value="/DPROJECT_NAME=${ant.project.name}"/>
<!-- passing the script -->
<arg value="${basedir}\raport.nsi"/>
</exec>
关于你的第二个问题:是的,你可以在没有ant的情况下编译nsis脚本。例如:
C:\Program_Files\NSIS\makensis.exe /DPROJECT_NAME=this-project my-script.nsi
在Linux上你也应该在某个地方makensis
。
PROJECT_NAME
内容是我的自定义。在最简单的情况下,您不提供任何定义,省略该部分。
答案 1 :(得分:1)
您是否使用Nsis Ant Sourceforge project中的NSIS Ant任务?安装后,您可以将其用作
<taskdef name="nsis" classname="net.sf.nsisant.Task">
<classpath location="nsisant-{version}.jar">
</taskdef>