我试图使用scalapb从protobuf生成case类。但是,我目前编译错误。
我有我的scalapb。sbt如下:
addSbtPlugin("com.trueaccord.scalapb" % "sbt-scalapb" % "0.5.26")
libraryDependencies ++= Seq(
"com.trueaccord.scalapb" %% "compilerplugin" % "0.5.26",
"com.github.os72" % "protoc-jar" % "3.0.0-b2.1"
)
还有,我的构建。sbt如下:
// for scalapb
import com.trueaccord.scalapb.{ScalaPbPlugin => PB}
PB.targets in Compile := Seq(
scalapb.gen() -> (sourceManaged in Compile).value
)
PB.protobufSettings
PB.runProtoc in PB.protobufConfig := (args =>
com.github.os72.protocjar.Protoc.runProtoc("-v241" +: args.toArray))
libraryDependencies ++= Seq(
"io.grpc" % "grpc-netty" % "0.14.0",
"com.trueaccord.scalapb" %% "scalapb-runtime-grpc" % (PB.scalapbVersion in PB.protobufConfig).value
)
此外,我还创建了一个示例。原型文件如下:
syntax = "proto2"
package org.pk.stream.protos
message Tweet {
required string filter_level = 1;
}
现在,当我尝试sbt compile
时,我收到以下错误:
S:\MyRepos\LogStreaming>sbt compile
[info] Loading global plugins from C:\Users\pkumar25\.sbt\0.13\plugins
[info] Loading project definition from S:\MyRepos\RLoggerStreaming\project
S:\MyRepos\LogStreaming\build.sbt:21: error: object trueaccord is not a
member of package com
import com.trueaccord.scalapb.{ScalaPbPlugin => PB}
^
sbt.compiler.EvalException: Type error in expression
[error] sbt.compiler.EvalException: Type error in expression
[error] Use 'last' for the full log.
Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore? q
有人能帮我解决这个错误吗?
我对scalapb的版本也有点困惑。萨米特。scalapb(https://scalapb.github.io/sbt-settings.html)和com。trueaccord。scalapb(https://mvnrepository.com/artifact/com.trueaccord.scalapb). 我很好奇,应该使用哪一个,以及如何恰当地使用它?
非常感谢!
每https://scalapb.github.io/migrating.html
从版本0.7.0开始,ScalaPB工件在com下发布。萨米特。scalapb组id而不是com。trueaccord。scalapb组id。
此外,com.trueaccord.scalapb中的所有类都被移动到skapb顶级包。在0.7. x期间,我们将在原始com.trueaccord.scalapb位置保留类型别名和引用,因此您可能会收到弃用警告,但您的代码不太可能中断。
此外,作者似乎希望您使用sbt协议插件。
然而,如果您发现有必要使用sbt scalapb,我认为修复方法就是在构建中启用插件。sbt:
启用插件(Scala Pb插件)
ScalaPbPlugin源代码显示,它不是一个自动插件,因此需要手动启用。
这里是ScalaPB的作者。大约两年前,ScalaPB已经过渡到TrueAccord之外的开发,因此我们相应地更改了工件和包名称。
您在问题中引用的是在此转换之前发布的非常旧的版本(0.5.26)。我建议按照我们文档中的说明使用最新版本(0.8.x)。如果您遇到任何问题,请立即在这里或我们的Gitter频道询问。
我一直在互联网上努力研究如何在编译成可运行的jar后显示图像图标。我发现这个问题太晚了,我以前在eclipse中运行过很多次程序,一切都正常,现在6个月后项目完成了,我用eclipse编译了我的程序,没有音频或图像工作。在网上阅读,它说关于图片文件夹的位置应该在罐子里,但我的没有放在那里? 我在源文件夹中移动了图片文件夹,但它不起作用。我有一种感觉,这可能与资源的路径有关。。。但这只是猜测。 我已
我观察到每次发出“编译”任务时,SBT都会编译所有源文件,而不管上次编译后的时间戳如何。以下是我的build.sbt文件: 以下是我的项目结构(忽略的项目和目标目录): 出于测试目的,这两个源文件只是空的对象定义。 当我输入“sbt编译”时,我得到了以下信息: 我可以在目标目录中找到新编译的类文件。 没有修改任何源文件,一分钟后,再次键入“sbt compile”,我得到了相同的信息和类文件,只是
在unix shell中尝试以下操作: https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/precompiled-2_8_2/0.13.7/jars/precompiled-2_8_2.jar https://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/prec
我在试着让DataStax spark cassandra连接器工作。我在IntelliJ中创建了一个新的SBT项目,并添加了一个类。下面给出了类和我的sbt文件。创建spark上下文似乎可以工作,但是,当我取消注释试图创建cassandraTable的行时,我得到了以下编译错误: 错误:Scalac:错误的符号引用。Cassandrarow.class中的签名引用了包org.apache.spa
我在编译代码时遇到了这个问题。
当我试图编译一个带有注释的项目时,我遇到了以下错误 如何在java解析器中修复此错误?我使用elcipselink和eclipse作为IDE。