Gradle:自定义源设置为主要和测试的依赖

Ant*_*eev 15 java classpath gradle source-sets

我在Gradle项目中创建了自定义源集,以保留所有生成的代码:

sourceSets {
  generated {
    java {
      srcDir 'src/generated/java'
    }
    resources {
      srcDir 'src/generated/resources'
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我想要在编译可用此源集合的代码编译的结果,运行时间maintest源集.

在Gradle中以正确的语义方式做什么?

更新:

如此处所示:如何向Gradle添加新的源集?对我来说不起作用,我java.lang.ClassNotFoundException在启动应用程序时仍然会得到(虽然编译和单元测试运行正常).这是我尝试过的:

sourceSets {
  main {
    compileClasspath += sourceSets.generated.output
    runtimeClasspath += sourceSets.generated.output
  }

  test {
    compileClasspath += sourceSets.generated.output
    runtimeClasspath += sourceSets.generated.output
  }
}
Run Code Online (Sandbox Code Playgroud)

Pet*_*ser 17

sourceSets {
    main {
        compileClasspath += generated.output
        runtimeClasspath += generated.output
    }
}
Run Code Online (Sandbox Code Playgroud)

test源集相同.

  • 谢谢,彼得!对于面临类似问题的每个人:事实证明,问题出在打包JAR,而不是指定依赖项,请参见Peter的答案[here](http://stackoverflow.com/questions/21161845/gradle-custom-source-set-作为主要和测试对象的依赖关系#comment31855557_21161845)。 (2认同)