2011-06-15 75 views
4

在我的项目建立多jar文件我有以下结构:我如何使用斯卡拉SBT

的src/

插件/

\ __ MPC

| __ OPER

予编译所有src中的阶文件的成单个罐(主程序),则在插件每个子目录包含阶文件应该建立一个插件罐子由主程序被加载(因此一个罐子插件/ MPC另一个用于插件/操作)。

在根我有build.sbt:

名称:= “mrto​​ms”

组织:= “齐隆”

版本:= “0.1”

libraryDependencies ++ = Seq(“commons-httpclient”%“commons-httpclient”%“3.1”)

crossPaths:= false

scalaHome:=一些(文件( “在/ usr /共享/斯卡拉”))

目标:=文件( “项目/目标”)

scalaSource在编译< < = baseDirectory(_/“SRC”)

mainClass:=一些( “org.chilon.mrtoms.MrToms”)

即建立从文件中我的主要JAR文件SRC就好了..我怎么加罐子源文件在每个插件直接RY?

回答

6

看来你需要完整的配置(目前使用的是基本的一个):

https://github.com/harrah/xsbt/wiki/Full-Configuration

在你的情况,root项目是你的主要罐子。然后每个插件都应该有它自己的项目,这个根项目集合起来。全部配置可以是这样的:

import sbt._ 

object MyBuild extends Build { 
    lazy val root = Project("root", file(".")) aggregate (mpc, oper) 
    lazy val mpc = Project("mpc", file("plugins/mpc")) dependsOn(pluginApi) 
    lazy val oper = Project("sub2", file("plugins/oper")) dependsOn(pluginApi) 
    lazy val pluginApi = Project("pluginApi", file("plugins/api")) 
} 
+1

非常感谢您的帮助:)在我来说,我加根..这编译没什么..只是聚集到子项目。然后所有的子项目都依赖于那里的插件子项目。根项目建立一个空的jar,scala编译器在第一次编译时不断发出“内存不足”的警告;)但除此之外它看起来不错。 – crelbor 2011-06-15 23:50:47

+0

似乎文档已移动(并希望变得更好)的意思。 http://www.scala-sbt.org/release/tutorial/Full-Def.html或者可能是这样的:http://www.scala-sbt.org/0.13/tutorial/Multi-Project.html – akauppi 2014-07-27 19:07:16