Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用ant编译NSIS脚本?_Ant_Nsis - Fatal编程技术网

如何使用ant编译NSIS脚本?

如何使用ant编译NSIS脚本?,ant,nsis,Ant,Nsis,我已经为我的java项目创建了NSIS脚本。我已经在eclipse中安装了NSIS插件。使用插件我已经创建了nsi文件。现在我想编译nsi文件。我已经尝试在eclipse中使用Ant <?xml version="1.0" encoding="UTF-8"?> <project name="test" default="nsis" basedir="."> <property name="build.path" value="build"/>

我已经为我的java项目创建了NSIS脚本。我已经在eclipse中安装了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.
生成失败
build.xml:12:问题:未能创建任务或类型nsis
原因:名称未定义。
措施:检查拼写。
操作:检查是否已声明任何自定义任务/类型。
措施:检查是否发生了任何/声明。

我不知道为什么会这样??如何使用ant编译nsi文件?或者有没有其他不使用ant的编译方法?

您是否使用来自的NSIS ant任务?安装后,您可以将其用作

<taskdef name="nsis" classname="net.sf.nsisant.Task">
    <classpath location="nsisant-{version}.jar">
</taskdef>

您是否使用来自的NSIS Ant任务?安装后,您可以将其用作

<taskdef name="nsis" classname="net.sf.nsisant.Task">
    <classpath location="nsisant-{version}.jar">
</taskdef>

使用专用的
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>
在Linux上,您还应该在某个地方拥有
makensis


项目名称
是我的定制。在最简单的情况下,您不提供任何定义,省略该部分。

使用专用的
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>
在Linux上,您还应该在某个地方拥有
makensis


项目名称
是我的定制。在最简单的情况下,您不提供任何定义,省略了该部分。

这“一旦安装”是什么意思。现在我只有nsis脚本。那么如何安装??通过ant,我想在安装后编译脚本。你能说清楚吗?Installed=nsisant jar文件必须在类路径中的某个位置谢谢。如果我运行此脚本,我是否需要makensis.exe文件?如果它是必需的,那么我如何才能获得makensis.exe文件?你对这个“一旦安装”是什么意思?现在我只有nsis脚本。那么我如何才能安装??通过ant,我想在安装后编译脚本。你能说清楚吗?Installed=nsisant jar文件必须在类路径中的某个位置谢谢。如果我运行此脚本,我是否需要makensis.exe文件?如果需要,那么如何获取makensis.exe文件?谢谢。我在哪里获取makensis.exe文件?我搜索过谷歌没能得到它。它是下载文件吗?你能给我提供任何链接或告诉我如何使用makensis.exe吗?谢谢。我已经下载了。在上面的脚本中,可以同时使用windows和linux吗?仅适用于linux?在linux上,您必须使用wine或自己构建它。请参阅以下问题:.failonerror=“true”此标记有何用途?你能告诉我吗?我很乐意帮你处理那些难找的东西。但我不会帮你看手册的。谷歌的“执行任务”。谢谢。我在哪里得到makensis.exe文件?我搜索过谷歌没能得到它。它是下载文件吗?你能给我提供任何链接或告诉我如何使用makensis.exe吗?谢谢。我已经下载了。在上面的脚本中,可以同时使用windows和linux吗?仅适用于linux?在linux上,您必须使用wine或自己构建它。请参阅以下问题:.failonerror=“true”此标记有何用途?你能告诉我吗?我很乐意帮你处理那些难找的东西。但我不会帮你看手册的。谷歌搜索“执行任务”。