2012-04-09 3 views
2

Я новичок в SBT, и я думаю о переносе моей работы в IntellijIDEA.Добавление незавершенного проекта Java к зависимостям SBT

У меня есть проект Java, который я создал с помощью eclipse, и теперь я хочу использовать его с scala.

Однако этот Java-проект постоянно меняется, и я не хочу компилировать каждый раз банку и вставлять в папку lib.

Есть ли простой способ добавить эту зависимость?

ответ

4

Давайте предположим, что у вас есть два проекта:

1) В /main-project, у вас есть build.sbt, содержащий строку name := "main-project-id"

2) В /other-project, у вас есть build.sbt, содержащий строку name := "other-project-id"

Вы можете создать зависимость от проекта Main к проекту Other, добавив файл /main-project/project/Build.scala:

import sbt._ 
import Keys._ 

object MainProjectBuild extends Build { 
    lazy val main = Project(id = "main-project-id", base = file(".")) dependsOn(other) 
    lazy val other = Project(id = "other-project-id", base = file("other-project")) 
} 

И затем добавление ссылки на /other-project внутри /main-project. Что-то вроде:

cd /main-project 
ln -s ../other-project other-project 

, так что теперь у вас в каталоге называется other-project: /main-project/other-project/.

Сделав это, если вы запустите sbt compile или что-то еще внутри /main-project, оно будет работать должным образом.

EDIT

Другой, возможно, более простой способ будет просто создать ссылку на вашу яву, что делает его похожим они находятся в одном каталоге с исходными текстами.

Так что, если ваш код Scala в /main-project/src/main/scala/somepackage/... и код Java в /other-project/src/main/java/otherpackage/..., то вы можете сделать:

cd /main-project/src/main 
ln -s /other-project/src/main/java java 

затем каталог /main-project/src/main/java просто будет указывать на источник зависимости, но SBT будет строить все вместе.

+0

Хм ... На самом деле необходимо создать еще один build.sbt или просто указать, что каталог работает? Кроме того, действительно ли мне нужно переместить папку в папку «main-project /»? –

+0

@Tiago, Отредактировано с помощью, возможно, более простой идеи – dhg

+0

Я должен позвонить ln все время, я хочу работать? Кажется не проще. И у меня все еще есть проблема, что мне нужно переместить местоположение проекта. Но, скорее, я не хочу усложнять. Я постараюсь перейти в Intellij и посмотрим. Спасибо за оба варианта. –

Смежные вопросы