在Scala中,是否可以编写引用另一个脚本的脚本

时间:2010-09-21 13:17:44

标签: scripting scala import

我目前正在考虑使用Scala脚本来控制MySQL数据库的生命周期,而不是使用MS-DOS脚本(我在Windows XP上)。

我希望有一个只保存配置信息的配置脚本,以及一个或多个使用配置信息执行各种操作的管理脚本,如启动,停止,显示状态等......

是否可以编写包含/ imports / references另一个Scala脚本的Scala脚本?

我查看了scala解释器的-i选项,但这会启动一个不是我想要的交互式会话。

3 个答案:

答案 0 :(得分:4)

根据Scala man,脚本预加载仅适用于交互模式。

作为解决方法,您可以在运行脚本后退出交互模式。这是child.bat的代码(包含另一个通用的脚本):

::#!
@echo off
call scala -i genetic.bat %0 
goto :eof
::!#
def childFunc="child"

println(geneticFunc)
println(childFunc)
exit;

genericFunc定义在genetic.bat

child.bat的输出:

>child.bat
Loading genetic.bat...
...    
geneticFunc: java.lang.String
Loading child.bat...
...
childFunc: java.lang.String
generic
child

答案 1 :(得分:3)

我使用Process并像其他任何命令一样调用其他Scala脚本。

答案 2 :(得分:1)

一个选项是创建一个脚本,将两个文件连接在一起,然后启动它,如:

@echo off
type config.scala > temp.scala
type code.scala >> temp.scala
scala temp.scala
del temp.scala

或类似的。然后你按照自己的意愿保持两个分开。