【发布时间】:2015-08-20 20:23:02
【问题描述】:
我有一个具有标准项目布局的现有 Gradle 项目:
src/main/java 和 src/test/java 用于我的代码。我编写了以下测试以确认 jcompilo 在我的项目中工作。
import com.googlecode.totallylazy.annotations.tailrec;
import org.junit.Test;
public class TailRecursionTest {
@tailrec
public static int safeRecursiveAdd(int iterations,int accumulator) {
if(iterations < 2)
return accumulator;
else{
return safeRecursiveAdd(iterations - 1, accumulator + iterations);
}
}
public static int unSafeRecursiveAdd(int iterations,int accumulator) {
if(iterations < 2)
return accumulator;
else{
return unSafeRecursiveAdd(iterations - 1, accumulator + iterations);
}
}
int STACKOVERFLOW_QUANTITY = 1000000;
@Test(expected = StackOverflowError.class)
public void withoutTailRecFail(){
unSafeRecursiveAdd(STACKOVERFLOW_QUANTITY,0);
}
@Test
public void tailRecWorks(){
safeRecursiveAdd(STACKOVERFLOW_QUANTITY, 0);
}
}
tailRecWorks() 测试中出现 StackOverflowError 失败。
我的 build.gradle 有以下花絮:
repositories {
maven {url "http://repo.bodar.com"}
}
dependencies {
compile group:'com.googlecode.jcompilo', name:'jcompilo', version:'2.30'
}
我将jcompilo.sh 文件从totallylazy Github master 分支复制到Gradle 项目的顶层。我在 jcompilo Github 中注意到,他的项目布局在项目的顶层有 src 和 test,并且直接包含源代码(我的是 src/main/java。我认为这可能是一个促成因素,但是我不知道如何配置 jcompilo.sh 任何和所有的帮助表示赞赏。谢谢!!
【问题讨论】:
标签: java gradle build build.gradle tail-recursion