我有一个具有标准项目布局的现有Gradle项目:

我的代码的src/main/javasrc/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中注意到,他的项目布局在项目的顶层具有srctest,并且直接包含源代码(我的位置是src/main/java。我认为这可能是一个促成因素,但我不知道如何配置jcompilo.sh任何和所有帮助,感激不尽!谢谢!

最佳答案

[我是JCompilo作者]

JCompilo当前主要用于完全替代Gradle,即我使用JCompilo来构建我的其他开源工具,而不是Gradle / Ant / Maven。

我一直在和Gradle / Buck的一些开发人员讨论过,他们可以直接在Grade中使用JCompilo编译器,但是不幸的是,目前这还只是在谈论。

抱歉,这不是您要找的答案。

10-08 17:04