我有一个sbt插件项目,使用多项目构建。我想使用这个插件作为其他sbt项目的依赖项。我已经创建了一个插件,但是当我把这个插件添加到project中时,我似乎不能正确地连接依赖项。
name := "sbt-plugin"
sbtPlugin := true
val commonSettings = Seq(
organization := "com.example",
version := "1.0",
scalaVersion := "2.11.7",
javacOptions := Seq("-source", "1.8", "-target", "1.8"),
scalacOptions := Seq("-target:jvm-1.8", "-unchecked", "-deprecation", "-encoding", "utf8"))
lazy val plugin = (project in file("plugin"))
.settings(commonSettings: _*)
.settings(
name := "plugin"
)
lazy val root = (project in file("."))
.settings(commonSettings: _*)
.dependsOn(plugin)
.aggregate(plugin)
package com.example
// Sample code I would like to access from another sbt project
object Hello {
def show = println("Hello, world!")
}
name := """plugin-test"""
version := "1.0"
scalaVersion := "2.11.7"
libraryDependencies += "org.scalatest" %% "scalatest" % "2.2.4" % "test"
fork in run := true
addSbtPlugin("com.example" % "sbt-plugin" % "1.0", "0.13","2.11")
package com.exam
object Test {
def result = com.example.Hello.show()
}
[error] E:\Play\SBT Plugin\sbt demo1\plugin-test\src\main\scala\com\exam\Test.scala:4: object example is not a member of package com
[error] def result = com.example.Hello.show()
[error] one error found
我在这里漏掉了什么?
当您将插件指定为addsbtplugin
时,您只将其添加到构建环境中(即在build.sbt
中执行操作),而不是在应用程序的类路径中(在src/main/...
下执行操作)。
在您的情况下,您需要将其用作常规依赖项。
我正在试图弄清楚如何为我自己的基于Scalding的项目创建文件。 滚烫源结构没有文件。相反,它具有构建定义。 将我自己的sbt项目与Scalding集成的正确方法是什么,这样我也可以稍后在Eclipse中用插件导入它? 我得到错误: 更新2 在执行和之后,我仍然有相同的编译错误。 'sbt Eclipse'创建未在Eclipse下编译的Eclipse项目,并报告以下错误:
我需要为我的一个子项目构建一个jar,包括依赖项,以便它可以用作。 我有一个多模块的sbt项目,这个模块是最低级别的(也是纯Java)。 我可以(例如使用sbt-onejar、sbt-proGuard或sbt组件)覆盖最低级别模块的打包方式吗? 看起来这些工具真的被设计成发布后的步骤,但是我真的需要一个(替换或附加的)发布的人工制品来包含依赖项(但只适用于这一个模块)。 更新:发布sbt程序集是针
但是,在编译ApplicationA时,SBT抱怨依赖项只能是子目录!!: 这看起来很简单,拥有这个项目依赖项的正确方法是什么?
更新 当我在proj B上进行sbt编译时,它抛出错误,依赖类找不到。类Hbase在Proj A中。 在建议之后更新了build.sbt: “;”应为,但在projB设置中为该行抛出了找到的字符串文本。 我对这个错误一无所知。
嗨,我是sbt的新手,我正在学习这个教程http://www.scala-sbt.org/0.13/tutorial/Hello.html我在shell上遵循了相同的步骤,程序显示“嗨”,我很困惑,我的hello文件夹中没有这些文件 src/main/scala或src/main/java中的来源 src/test/scala或src/test/java中的测试 src/main/资源或src/t
我正在使用IntelliJ开发Spark应用程序。我正在遵循这个关于如何使intellij与SBT项目良好地工作的指导。 但这样我就无法在IntelliJ内部运行应用程序,因为类路径中不会包含spark依赖项。