2011-06-15 86 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