我有一个具有标准项目布局的现有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主分支复制到了Gradle项目的顶层。我在jcompilo Github中注意到,他的项目布局在项目的顶层具有src
和test
,并且直接包含源代码(我的位置是src/main/java
。我认为这可能是一个促成因素,但我不知道如何配置jcompilo.sh任何和所有帮助,感激不尽!谢谢! 最佳答案
[我是JCompilo作者]
JCompilo当前主要用于完全替代Gradle,即我使用JCompilo来构建我的其他开源工具,而不是Gradle / Ant / Maven。
我一直在和Gradle / Buck的一些开发人员讨论过,他们可以直接在Grade中使用JCompilo编译器,但是不幸的是,目前这还只是在谈论。
抱歉,这不是您要找的答案。