我在哪里可以得到Antlr Ant任务?
我试图按如下方式在我的Ant build.xml中调用Antlr任务:
<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>
但是Ant找不到任务定义。我已将以下所有内容放入该" dir.lib.build"中:
- antlr-3.1.jar
- antlr-2.7.7.jar
- antlr-runtime-3.1.jar
- stringtemplate-3.2.jar
但是这些似乎都没有任务定义。 (我也尝试过将这些罐子放在Ant类路径中;同样的问题。)
解决方案
回答
当前的Antlr任务jar可在http://www.antlr.org/share/1169924912745/antlr3-task.zip中找到
可以在antlr.org网站的"文件共享"标题下找到该文件。
回答
我们应该使用antlrall.jar jar。我们可以继续并将其放到Ant安装中,但这确实意味着它仅适用于该安装。我们检入jar文件,并使用taskdef加载jar文件,以使开发人员在团队中开始工作或者转移到新计算机时,它不会成为下一步。
- Antlr http://ant.apache.org/manual/Tasks/antlr.html
- 使用taskdef http://www.onjava.com/pub/a/onjava/2004/06/02/anttask.html
回答
我只是为自己工作。花了我一个小时。啊。反正,
步骤1:从下载ant-antlr3任务
http://www.antlr.org/share/1169924912745/antlr3-task.zip
步骤2:复制到蚂蚁可以看到的地方。我的Mac:
须藤cp /usr/local/lib/ant-antlr3.jar / usr / share / ant / lib /
我的Linux机器:
须藤cp /tmp/ant-antlr3.jar /usr/local/apache-ant-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