首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >注释处理器输出路径sbt?

注释处理器输出路径sbt?
EN

Stack Overflow用户
提问于 2016-04-04 16:03:37
回答 3查看 793关注 0票数 2

有没有办法在sbt中设置注释处理器输出路径?

目前,它将文件生成为:

target/scala-2.11/classes

不过,我更希望

target/scala-2.11/src_managed

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-04-09 17:38:56

有点像

代码语言:javascript
复制
// in build.sbt:

// create managed source directory before compile
compile in Compile <<= (compile in Compile) dependsOn Def.task { (managedSourceDirectories in Compile).value.head.mkdirs() },

// tell the java compiler to output generated source files to the managed source directory
javacOptions in Compile ++= Seq("-s", (managedSourceDirectories in Compile).value.head.getAbsolutePath),
票数 5
EN

Stack Overflow用户

发布于 2020-11-24 11:11:02

配置sourceManaged而不是managedSourceDirectories稍微更符合人体工程学。

build.sbt中添加到sbt模块的设置

代码语言:javascript
复制
Compile / javacOptions ++= Seq("-s", (Compile / sourceManaged).value.getAbsolutePath)

您也可以将这个插件放到project文件夹中。

代码语言:javascript
复制
package custom.sbt

import sbt.{Def, _}
import sbt.Keys._

object Compiler extends AutoPlugin {
  override def trigger = allRequirements

  override def buildSettings: Seq[Def.Setting[_]] = Seq(
    Compile / javacOptions ++= Seq("-source", "11", "-target", "11"),
    scalacOptions ++= Seq(
      "-target:11"              // Target JRE 11
    )
  )

  override def projectSettings: Seq[Def.Setting[_]] = Seq(
    Compile / javacOptions ++= Seq("-s", (Compile / sourceManaged).value.getAbsolutePath)
  )
}
票数 1
EN

Stack Overflow用户

发布于 2020-04-14 00:51:07

在sbt 0.13.15

代码语言:javascript
复制
compile := ((compile in Compile) dependsOn Def.task {
      (sourceManaged in Compile).value.mkdirs()
    }).value,

javacOptions in Compile ++= Seq("-s", s"${sourceManaged.value}/main")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36407543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档