我在SBT中想要的是在Play 2.2.1控制檯中爲foo a b c
輸入任務,調用通過a b c
作爲參數列表的Java(靜態)方法被執行。在SBT/Play中運行內部構建定義的Java方法
PlayConsole:foo a b c ===should call===> Foo.bar(a,b,c)
我有以下游戲目錄結構和文件(Java項目):
-myplayapp
-app
-controllers
-views
-myfolder
Foo.java
-project
...
build.scala
...
myfolder.Foo
package myfolder;
public class Foo {
public static void bar(String... args) {
for(String s : args)
System.out.println(s);
}
}
項目/ build.scala
import sbt._
import Keys._
import play.Project._
import sbt.complete.Parsers._
object ApplicationBuild extends Build {
val appName = "myplayapp"
val appVersion = "1.0-SNAPSHOT"
val appDependencies = Seq()
val foo = inputKey[Unit]("Foo you.")
val fooSettings = foo := {
val args: Seq[String] = spaceDelimited("<arg>").parsed
// Foo.bar(args)
}
val main = play.Project(appName, appVersion, appDependencies).settings(
fooSettings
)
}
我試過import myfolder.Foo._
和import myfolder.Foo.bar
沒有成功。這兩種情況的錯誤是相同的:
not found: object myfolder.
有沒有辦法做我想做的事?
的問題不在於'static'。這工作正常:'import java.lang.String.format;格式(「a%s c」,「b」)' – senia
爲什麼不在build.scala中創建一個scala方法? 'def foo(args:String *):Unit = args.foreach(println)'或者其他任何表達式。 –
您可以使用安裝,清理編譯,測試等步驟,並插入此方法。 –