Tag: sbt

Scala与Java 9不兼容 – java.lang.NoClassDefFoundError

在我的电脑上安装Java 9后运行一个示例Scala SBT项目,我就接受了这个例外。 我已经尝试了一些我发现的解决方案,但没有。 Java 9和Scala之间是否存在任何不兼容性? Scala版本:2.12.3 Java版本:java版本“9” IDE:IntelliJ 提前致谢。 info] Compiling 7 Scala sources and 1 Java source to /Users/ermis/Projects/begining-scala/target/scala-2.12/classes… [info] pahEnabledFilters – Enabled Filters (see ): play.filters.csrf.CSRFFilter play.filters.headers.SecurityHeadersFilter play.filters.hosts.AllowedHostsFilter [info] play.api.Play – Application started (Dev) Uncaught error from thread [play-dev-mode-akka.actor.default- dispatcher-2]: javax/xml/bind/DatatypeConverter, shutting down JVM since ‘akka.jvm-exit-on-fatal-error’ is enabled for for ActorSystem[play-dev-mode] java.lang.NoClassDefFoundError: […]

如何将JDK中的类链接到scaladoc生成的doc?

我正在尝试将JDK中的类链接到scaladoc生成的doc中。 我使用了scaladoc 2.10.1的-doc-external-doc选项,但没有成功。 我正在使用-doc-external-doc:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/rt.jar#http://docs.oracle.com/javase/7/docs/api/ ,但我得到的链接如index.html#java.io.File而不是index.html?java/io/File.html 。 似乎此选项仅适用于scaladoc生成的doc。 我是否错过了scaladoc中的选项,还是应该填写function请求? 我已经配置sbt如下: scalacOptions in (Compile,doc) += “-doc-external-doc:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/rt.jar#http://docs.oracle.com/javase/7/docs/api” 注意:我在即将发布的sbt 0.13中看到了Opts.doc.externalAPI util。 我认为一个很好的补充(不确定是否可能)将传递ModuleID而不是File 。 util会找出哪个文件对应于ModuleID 。

sbt添加java项目

使用IDEA IntelliJ中的一些scala软件。 (如果必要,它还具有Androidfunction)。 假设我有两个项目: 用scala编写的P1使用sbt作为构建工具 P2,用java编写,使用gradle作为构建工具 我想从P2调用一些代码,它有完整的源代码。 所以我在我的IntelliJ scala项目中导入P2作为模块。 但是当我使用sbt-shell编译我的sbt项目时,它告诉我一个错误,它无法找到在P2中声明的类和包的任何定义。 我想我需要在build.sbt文件中创建一个正确的引用,以便它可以理解定义的来源。 我找到了一个解决方案,建议将非托管java源路径添加到build.sbt,如下所示: unmanagedSourceDirectories in Compile += file(“mydependency”) 但事情是依赖本身具有依赖性。 当我尝试编译时,sbt告诉我它无法找到该依赖项的定义。 所以我需要一种方法来引用build.sbt中的完整java项目,这样我就可以通过sbt shell编译整个东西(实际上,我被迫使用非常sbt shell)。 有什么建议么?

Scala多模块项目?

我有Java背景和思考学习Scala 。 我喜欢使用Maven一件事是我可以将项目作为多个maven模块。 例? Project/pom.xml /persistence/pom.xml /business/pom.xml /services/pom.xml 关于它的好处是这些模块中的每一个都可以拥有自己的依赖项,并且可以独立测试,而不是运行一个整体应用程序。 我们如何在Scala , sbt或其生态系统中实现类似的function?

混合(Scala / Java)项目的单一文档?

对于具有Scala和Java模块(并排)的项目,如何将scaladoc与javadoc结合使用以提供项目文档的单一视图? (这可能是使用maven,或ant,或sb​​t,更一般的问题)。 任何想法和经验表示赞赏。

SBT:将输入预先应用于inputKeys

在SBT中:我想定义一个inputKey,它读入命令行参数,稍微改变它们并将结果用作其他inputKeys的输入。 我试过了: lazy val demo = inputKey[Unit](“A demo input task.”) lazy val root = (project in file(“.”)).settings( libraryDependencies += jUnitInterface ).settings( demo := { val args: Seq[String] = spaceDelimited(“”).parsed val one = (run in Compile).fullInput(args(0) + “foo”).evaluated } ) 但我收到error: Illegal dynamic reference: args 。 我也尝试过: demo := { val args: Seq[String] = spaceDelimited(“”).parsed System.setProperty(“args0”, […]

清理基于Play框架的项目

运行一个新的基于Play-framework 2.0的项目后,我无法清理它 – 生成的工作人员坚持下面, $ play new myapp > app name: myapp > template: java app myapp/ ├── app │ ├── controllers │ └── views ├── conf ├── project └── public ├── images ├── javascripts └── stylesheets $ cd myapp $ play [myapp] run 12345 Ctrl D [myapp] clean myapp/ ├── app │ ├── controllers […]

如何在Play Framework中进行详细编译?

在使用Java的Play框架2.0.8中,是否可以进行详细的编译? 目前我只看到: [info]编译131个Scala源和10个Java源代码到…… 我正在尝试确定更改控制器时为什么会重新编译这么多文件的原因。 提前致谢

无法运行激活模板项目激活器UI无法加载SBT配置

我是Play Framework和Scala的新手,也是这个神奇的工具激活器。 我无法运行运行play框架的模板项目(例如:hello-play-scala),但能够很好地运行hello-scala(非playframework)。 我正在运行激活器1.3.5 我得到的错误是: H:\Project\PlayFrameworkTest\hello-play-java\build.sbt:12: error: reference to fork is ambiguous; it is imported twice in the same scope by import _root_.play.Project._ and import Keys._ fork in run := true ^ Type error in expression Failed to load project. build.sbt是: name := “””hello-play-java””” version := “1.0-SNAPSHOT” libraryDependencies ++= Seq( “org.webjars” %% “webjars-play” % “2.2.2”, […]

sbt中的工作目录

我希望能够在特定目录中运行java程序。 我认为,参数化工作目录非常方便,因为它可以轻松管理配置。 例如,在一个文件夹中,您可以配置测试,在另一个文件夹中,您可以拥有生产所需的资源。 您可能认为,可以选择操作类路径以包含/排除资源,但只有当您对存储在类路径中的资源感兴趣并使用Classloader.getResource(r)引用它们时,此解决方案才有效。 但是如果你有一些外部配置并且想要使用File file = new File(“app.properties”);类的简单指令来访问它会File file = new File(“app.properties”); ? 让我们看看普通的例子。 您的应用程序使用app.properties文件,您可以在其中存储外部服务的凭据。 应用程序在工作目录中查找此文件,因为您使用了提到的File file = new File(“app.properties”); 访问它的说明。 在测试中,您希望使用特定于测试的app.properties 。 在集成测试中,您希望使用特定于其他环境的app.properties 。 最后,当您构建和发布应用程序时,您希望提供其他app.properties文件。 通过键入File file = new File(“app.properties”);您想要访问的所有这些资源总是以相同的方式访问File file = new File(“app.properties”); 而不是(伪代码): if(configTest) file = File(“testWorkDir/app.properties”); else if(config2) file = File(“config2WorkDir/app.properties”); else file = File(“app.properties”); 或者不使用classpath中的资源 this.getClass.getClassLoader.getResource(“app.properties”); 当然你是聪明的程序员,你使用构建工具,如maven,gradle或sbt 🙂 从一开始就应该这样做。 […]