感谢Android-Studio,我现在正尝试将IntelliJ Idea用于非Android项目。
我已经安装了最新版本的IntelliJ社区版(12.1.4)。我已经创建了一个简单的测试项目,其中包含一些JavaCC语法定义的类来尝试。从命令行,ant脚本可以很好地构建项目。
从Ant构建的角度来看,我已经完成了所有配置。
但是我还没有完成IntelliJ中的工作。我确实执行了ant脚本的那一部分来更新语法文件中生成的Java源代码。我可以在日志中看到每次调用运行javaCC的ant任务,就在“Make”之前。
但是IntelliJ并没有“看到”那部分树。
在“文件 - >项目结构 - >模块”中我已经配置了源路径:
<project-root>
build
classes <- Excluded
java <- Sources
libs
src
main
java <- Sources
javacc <- Place where grammar file lives.
test
data
java <- Test sources
在消息来源列表中,它报告了以下内容:
Source Folders
src/main/java
build/java
Test Source Folder
src/test/java
在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>
}
4)。将以下ant脚本build.xml
添加到项目库中。
<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<project name="test" default="all" basedir=".">
<property name="pkg.name" value="test"/>
<property name="dir.src.java" value="${basedir}/src/"/>
<property name="dir.src.javacc" value="${basedir}/javacc"/>
<property name="dir.test.java" value="${basedir}/out/src"/>
<property name="dir.class" value="${basedir}/out/Test"/>
<target name="grammar">
<mkdir dir="${basedir}"/>
<mkdir dir="${basedir}/out/"/>
<mkdir dir="${dir.test.java}"/>
<mkdir dir="${dir.test.java}/com"/>
<mkdir dir="${dir.test.java}/com/example"/>
<javacc
target="${dir.src.javacc}/Test.jj"
outputdirectory="${dir.test.java}/com/example"
javacchome="/usr/share/java/"
debugparser="true" />
</target>
<target name="compile" depends="grammar">
<mkdir dir="${dir.class}"/>
<javac destdir="${dir.class}"
includeantruntime="false"
debug="on">
<compilerarg value="-Xlint:-path"/>
<src path="${dir.src.java}"/>
<src path="${dir.test.java}"/>
</javac>
</target>
</project>
5)。在“Ant Build”窗口中注册新的构建脚本。
6)。从“和构建”窗口运行gammar
目标。您应该在${PROJECT_BASE}/out/src
中看到一些新的Java类。
7)。在“项目结构 - &gt;模块 - &gt;路径”中选择“使用模块输出路径”并取消选择“排除输出路径”
6)。在“项目结构 - &gt;模块 - &gt;来源”中添加“out - &gt; 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
$