我想呼吁这些代码的任务在我的蚂蚁build.xml 如下:

<path id="classpath.build">
  <fileset dir="${dir.lib.build}" includes="**/*.jar" />
</path>

...

<target name="generate-lexer" depends="init">
  <antlr target="${file.antlr.lexer}">
    <classpath refid="classpath.build"/>
  </antlr>
</target>

但是蚂蚁不能找到该任务定义。我已经把下列所有在这 dir.lib.build:

  • antlr-3.1.jar
  • antlr-2.7.7.jar
  • antlr-runtime-3.1.jar
  • stringtemplate-3.2.jar

但没有那些似乎有任务的定义。(我还想把那些罐子在我的蚂蚁类路径;相同的问题。)

有帮助吗?

解决方案

目前这些代码任务可在罐子里 http://www.antlr.org/share/1169924912745/antlr3-task.zip

它可以发现在 antlr.org 网站的"共享文件"的标题。

其他提示

你应该使用antlrall.jar 罐子。你可以继续前进,只是把它放到你的蚂蚁安装,但是这并不意味着它将只作为一个安装。我们检查罐和使用taskdef载罐子文件,以便它不会成为另一个步骤,为开发人员,当他们开始上队伍或移动到一个新的计算机。

我只是得到了这个工作我自己。我花了一个小时。唉。无论如何,

步骤1:下载的蚂蚁-antlr3任务

http://www.antlr.org/share/1169924912745/antlr3-task.zip

步骤2:复制到这里的蚂蚁可以看到它。我mac:

sudo cp/usr/local/lib/ant-antlr3.jar /usr/share/ant/lib/

我linux框:

sudo cp/tmp/ant-antlr3.jar /usr/local/apache-蚂蚁1.8.1/lib/

步骤3:确保antlr2,antlr3,ST是在类路径。都在一个在这里:

http://antlr.org/download/antlr-3.3-complete.jar

步骤4:使用build.xml

<path id="classpath">
    <pathelement location="${antlr3.jar}"/>
    <pathelement location="${ant-antlr3.jar}"/>
</path>

<target name="antlr" depends="init">
    <antlr:ant-antlr3 xmlns:antlr="antlib:org/apache/tools/ant/antlr"
        target="src/T.g"
        outputdirectory="build">
        <classpath refid="classpath"/>
    </antlr:ant-antlr3>
</target>

只是添加了一个常见条目:

http://www.antlr.org/wiki/pages/viewpage.action?pageId=24805671

最基本的方式运行这些代码,是执行这些代码瓶子:

<project default="antlr">
  <target name="antlr">
    <java jar="antlr-4.1-complete.jar" fork="true">
      <arg value="grammar.g4"/>
    </java>
  </target>
</project>

这是慢了一点,因为它叉JVM和运行这些代码,即使该法没有改变。但它的工作在相同的方式与每一个这些代码版本,并不需要任何特殊的目标。

在Ubuntu这应该使它可以:

sudo apt-get install ant-optional

额外信息在什么其他人都促成了迄今为止:

ant-optional 包Ubuntu中包括任务运用的蚂蚁1.8.2这一任务对于这些代码2.7.2因此这将会失败的错误描述 在这个岗位.所述的方法,通过特伦斯是最好的方式来使用的ANTLR3的任务。

如果你没有根访问在Linux机,可以安装的ant-antlr3.jar 文件中的蚂蚁,用户目录: ~/.ant/lib.检查 ant -diagnostics 是否ant-antlr3.jar 看到蚂蚁解释 在这个其他员额.

如果您使用的食,你会需要重新启动IDE之前,它认识到,新的任务而你也将需要包括 antlr3.jarstringtemplate.jar 在类路径(但是 ant-antlr3.jar 是不必要的)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top