【问题标题】:Gradle: custom source set as dependency for the main and test onesGradle:自定义源设置为主要和测试源的依赖项
【发布时间】:2014-01-16 12:30:41
【问题描述】:

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

sourceSets {
  generated {
    java {
      srcDir 'src/generated/java'
    }
    resources {
      srcDir 'src/generated/resources'
    }
  }
}

我想让这个源集的代码编译结果在 maintest 源集的编译和运行时可用。

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

更新:

正如这里所建议的:How do I add a new sourceset to Gradle? 对我不起作用,当我启动我的应用程序时,我仍然得到java.lang.ClassNotFoundException(尽管编译和单元测试运行良好)。这是我尝试过的:

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

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

【问题讨论】:

  • 这个问题有点不同,并没有解决我的问题,当我启动我的应用程序时,我仍然收到ClassNotFoundException。请查看更新后的问题。
  • 您必须提供更多信息,例如你究竟是如何启动应用程序的,找不到什么类等等。
  • 您可以将堆栈跟踪添加到问题中吗?
  • jar { from sourceSets.generated.output }.

标签: java gradle classpath source-sets


【解决方案1】:
sourceSets {
    main {
        compileClasspath += generated.output
        runtimeClasspath += generated.output
    }
}

test 源集也是如此。

【讨论】:

  • 谢谢,彼得!对于面临类似问题的每个人:原来问题在于打包 JAR,而不是指定依赖项,请参阅 Peter 的回答 here
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-09-07
  • 2014-08-23
  • 2013-08-11
  • 1970-01-01
  • 2018-10-19
  • 1970-01-01
  • 2014-07-07
相关资源
最近更新 更多