2013-03-02 28 views
5

Cách tốt nhất để tạo các tệp jar riêng biệt bằng cách sử dụng sbt cho nhiều lớp chính dưới cùng một cây nguồn là gì?Các lọ riêng biệt cho các lớp chính khác nhau dưới cùng một src

thư mục Dự án trông giống như sau:

project_root/ 
     src/main/scala/ 
        A/*.scala files for main class A 
        B/*.scala files for main class B 
       resources/ 
      test/scala/ 
        A/ 
        B/ 
     lib/ 
     project/Build.scala 
     build.sbt 

Chú ý rằng cả A và B có cùng một cơ sở. Ví dụ cụ thể về tệp Build.scala sẽ hữu ích.

+0

Bạn có muốn một bình cho A và B tương ứng, cả hai đều chứa các lớp cơ sở chung? –

+0

Có. 2 tệp jar có các lớp phổ biến. – deepkimo

+0

bạn có tìm thấy giải pháp tốt nào không? – bunnyjesse112

Trả lời

1

Bạn nên xem Getting Started Multi Project. Tôi đã tạo một ví dụ đơn giản bên dưới:

import sbt._ 

object MyBuild extends Build { 

    lazy val projA = Project("projA", file("a")) 

    lazy val projB = Project("projB", file("b")) 
} 
+0

Điều này sẽ không hoạt động đối với trường hợp tôi mô tả, vì cả hai dự án đều có cùng cơ sở. – deepkimo

+0

Bạn có thể tạo một dự án thứ ba chứa các clsass phổ biến và sử dụng 'dependsOn' như được mô tả trong liên kết bên dưới" phụ thuộc Classpath ". Hoặc bạn có thể cố gắng thực hiện hai dự án với cùng một đường dẫn cơ sở và sau đó loại trừ một số lớp từ bản dựng trong mỗi dự án (tôi chưa thử điều này vì vậy không chắc chắn nếu nó hoạt động). Đây là một câu trả lời cho thấy làm thế nào để loại trừ các lớp học java từ xây dựng để bạn có thể có thể thích ứng nó với nhu cầu của bạn. http://stackoverflow.com/a/8896784/355499 –

Các vấn đề liên quan