Scala 初探.三(sbt组织scala代码1)

Scala 初探.三(sbt组织scala代码1)

上一节我们用Makefile来组织scala代码,这里有更好的选择sbt来管理项目
sbt推荐将scala代码放在src路径,如下为标准的组织方式(代码还是原封使用第二节的样例代码)
总共3个文件

1
2
3
4
5
6
7
├── build.sbt
└── src
└── main
└── scala
├── a.scala
├── b.scala
└── c.scala

输入命令 sbt test 编译没报错
输入命令 sbt run 提示找到了2个入口函数

1
2
3
4
5
6
7
8
Multiple main classes detected, select one to run:

[1] com.east.objectMain
[2] com.north.NorthWolf
[info] Packaging E:\nutstore\2017pc\lab\scala\sbtProj\target\scala-2.11\sbtproj_2.11-0.1.0-SNAPSHOT.jar ...
[info] Done packaging.

Enter number:

跟我们的预期一致,确实a.scala中 和c.scala分别存在两个main入口 ,用不同的方式实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//a.scala
package com.east
import com.west._
object objectMain extends App{
println("add Function from west used in east, 1+2=%d".format(Add.add(1,2)))
}

//c.scala
package com.north
import com.west._
object NorthWolf {
def main(args:Array[String]) {
println("add Function from west used in north, 3+4=%d".format(Add.add(3,4)))
args.map(println)
}
}

也可以sbt "runMain com.north.NorthWolf arg1 arg2" 直接选定要执行的main入口

其他sbt 相关的命令可以自行在网上搜索

SBT打包jar

sbt compile 后会在根目录下生成

评论