Ant 使用蚂蚁的智能建筑
多亏了Android Studio,我现在正尝试将IntelliJ理念用于我的非Android项目 我已经安装了IntelliJ社区版(12.1.4)的最新版本。我已经创建了一个简单的测试项目,其中包含几个类和JavaCC语法定义,以进行测试。从命令行,ant脚本可以很好地构建项目 从蚂蚁建筑的角度来看,我把一切都配置得很好 但我在IntelliJ内部还没有很好的工作。我确实执行了ant脚本的这一部分,以从语法文件更新生成的Java源代码。我可以在日志中看到,运行javaCC的ant任务每次都被调用,就在“Make”之前 但是IntelliJ没有“看到”树的那一部分 在“文件->项目结构->模块”中,我对源路径进行了如下配置:Ant 使用蚂蚁的智能建筑,ant,intellij-idea,Ant,Intellij Idea,多亏了Android Studio,我现在正尝试将IntelliJ理念用于我的非Android项目 我已经安装了IntelliJ社区版(12.1.4)的最新版本。我已经创建了一个简单的测试项目,其中包含几个类和JavaCC语法定义,以进行测试。从命令行,ant脚本可以很好地构建项目 从蚂蚁建筑的角度来看,我把一切都配置得很好 但我在IntelliJ内部还没有很好的工作。我确实执行了ant脚本的这一部分,以从语法文件更新生成的Java源代码。我可以在日志中看到,运行javaCC的ant任务每次都被
<project-root>
build
classes <- Excluded
java <- Sources
libs
src
main
java <- Sources
javacc <- Place where grammar file lives.
test
data
java <- Test sources
在build/java
中,是运行JavaCC生成的所有源代码(在适当的包子目录中)。那么IntelliJ为什么不去接他们呢
一如既往,谢谢你的帮助
史蒂夫
更新
我的计算机运行Linux,确切地说是Debian,JavaCC已经安装到/usr/share/java中
1) 。创建新项目“测试”
2) 。在项目根目录下创建一个新目录:javacc
3) 。将以下文件Test.jj
添加到javacc
options {
STATIC = false;
}
PARSER_BEGIN(Test)
package com.example;
import java.io.StringReader;
public class Test {
private boolean mIsBaseball = false;
public Test(final String text) {
this(new StringReader(text));
}
}
PARSER_END(Test)
TOKEN: { <DOT: "."> }
TOKEN: { <SLASH: "/"> }
void dummy():
{
}
{
<SLASH> <DOT>
}
5) 。在“Ant Build”窗口中注册新的构建脚本
6) 。从“和构建”窗口运行gammar
目标。您应该在${PROJECT\u BASE}/out/src
中看到一些新的Java类
7) 。在“项目结构->模块->路径”中选择“使用模块输出路径”,并取消选择“排除输出路径”
6) 。在“项目结构->模块->源”中添加“out->src”作为源目录。src
和out/scr
应该是唯一的列表
8) 。将Main.java
编辑为以下内容:
package com.example;
import com.example.Test;
public class Main {
public static void main(String[] args) {
try {
Test test = new Test("/.");
test.dummy();
} catch (Throwable cause) {
cause.printStackTrace();
}
}
}
正如您所看到的,生成的源代码是不可见的(我可以在我的源代码上看到)
9) 。通过命令行,您可以非常愉快地编译和运行东西
$ ant
$ java -cp out/Test com.example.Main
Call: dummy
Consumed token: <"/" at line 1 column 1>
Consumed token: <"." at line 1 column 2>
Return: dummy
$
$ant
$java-cp out/Test com.example.Main
呼叫:哑巴
已消费代币:
已消费代币:
返回:虚拟
$
IDEA是否在文件
|同步
后看到源代码?嗨,抄送。不,没有!请分享一个将重现问题的示例项目。嗨,抄送。我在上面添加了一个简单的示例(在更新下)。顺便说一句,我的IntelliJ版本是12.1.4(IC-129.713,建立于2013年6月10日)。非常感谢您在这方面的帮助。如果您只需通过一些文件交换服务(dropbox、google drive、skydrive等)压缩并共享项目目录,将会更加容易。
package com.example;
import com.example.Test;
public class Main {
public static void main(String[] args) {
try {
Test test = new Test("/.");
test.dummy();
} catch (Throwable cause) {
cause.printStackTrace();
}
}
}
$ ant
$ java -cp out/Test com.example.Main
Call: dummy
Consumed token: <"/" at line 1 column 1>
Consumed token: <"." at line 1 column 2>
Return: dummy
$