[SCALA] 어떻게 SBT 자식에서 종속 아티팩트를 당겨 수 있습니까?
SCALA어떻게 SBT 자식에서 종속 아티팩트를 당겨 수 있습니까?
나는 들었어요 (그리고 나는 단지 어디 기억할 수 있다면 내가 너무 예를 본 적이 알고) 그 SBT는 자식의 repo에서 종속성을 얻을 수 있습니다.
나는하라 / 최대 GitHub의에서 종속성을 얻기 위해 찾고 있어요. 저장소는, SBT를 사용하여 구축 할 수 있도록 설정 한 경우에만 소스 트리를 어떤 유물의 JAR 파일을 제공하지 않습니다. 내가 상상하고이 과정은 SBT는, 소스 REPO를 다운로드를 구축하고 있음을 사용하는 것입니다 종속성 이슈로.
나는 사실 같은 것을 할 수 SBT 상상 할 수있다. 그것을 할 수 있습니까? 그리고 만약 그렇다면, 어떻게?
해결법
-
==============================
1.네 확실합니다. 당신은 당신의 프로젝트에게의 DependsOn 연산자 종속성을 줄 수 있으며, 예를 들어 RootProject (URI ( "자식 : //github.com/dragos/dupcheck.git"))에 대한, 그 URI에 의해 Github에서 프로젝트를 참조 할 수 있습니다. 다른 방법으로는 프로젝트를 복제 이눔 수 있으며, 다음 RootProject (파일 (...))와 로컬 복사본을 참조합니다. 자세한 내용 및 예는 SBT 위키에 "전체 구성"을 참조하십시오.
네 확실합니다. 당신은 당신의 프로젝트에게의 DependsOn 연산자 종속성을 줄 수 있으며, 예를 들어 RootProject (URI ( "자식 : //github.com/dragos/dupcheck.git"))에 대한, 그 URI에 의해 Github에서 프로젝트를 참조 할 수 있습니다. 다른 방법으로는 프로젝트를 복제 이눔 수 있으며, 다음 RootProject (파일 (...))와 로컬 복사본을 참조합니다. 자세한 내용 및 예는 SBT 위키에 "전체 구성"을 참조하십시오.
-
==============================
2.당신은의 DependsOn 연산자를 사용하여, 프로젝트 종속성로 처리하여 GitHub의에서 프로젝트에 포장되지 종속성을 가져올 수 있습니다. (이것은 미리 컴파일 된 라이브러리 의존성이 포함되는 방식 구별된다).
당신은의 DependsOn 연산자를 사용하여, 프로젝트 종속성로 처리하여 GitHub의에서 프로젝트에 포장되지 종속성을 가져올 수 있습니다. (이것은 미리 컴파일 된 라이브러리 의존성이 포함되는 방식 구별된다).
당신이 # 표기법을 사용하여 끌어 분기를 지정할 수 있습니다. 여기에 나를 위해 잘 작동 일부 스칼라 SBT의 코드는 다음과 같습니다
object V { val depProject = "master" // Other library versions } object Projects { lazy val depProject = RootProject(uri("git://github.com/me/dep-project.git#%s".format(V.depProject))) } // Library dependencies lazy val myProject = Project("my-project", file(".")) .settings(myProjectSettings: _*) .dependsOn(Projects.depProject) .settings( libraryDependencies ++= Seq(...
같은 외부 프로젝트에 dependending 여러 SBT 프로젝트가있는 경우, 불필요한 재 컴파일을 (여기 지침 참조)를 피하기 위해 중앙 sbt.boot.directory을 설정하는 가치가 있습니다.
-
==============================
3.나는 문제 (제안 RootProject 사용) 해결 내 라이브러리의 의존성을 받고 있었다 때문에 나는 ProjectRef라는 개체를 지적하고 싶습니다. 하나는 라이브러리가 자식에 거주하는에 의존해야하는 경우 따라서, 나는 다음과 같이 그렇게하는 것이 좋습니다 :
나는 문제 (제안 RootProject 사용) 해결 내 라이브러리의 의존성을 받고 있었다 때문에 나는 ProjectRef라는 개체를 지적하고 싶습니다. 하나는 라이브러리가 자식에 거주하는에 의존해야하는 경우 따라서, 나는 다음과 같이 그렇게하는 것이 좋습니다 :
import sbt.Keys._ import sbt._ object MyBuild extends Build { lazy val root = Project("root", file(".")) .dependsOn(myLibraryinGit) .settings( ..., libraryDependencies ++= Seq(...)) lazy val myLibraryinGit = ProjectRef(uri("git://git@github.com:user/repo.git#branch"), "repo-name") }
출처 : http://blog.xebia.com/git-subproject-compile-time-dependencies-in-sbt/
-
==============================
4.나는 SBT의 0.13+에 대한 대답을 추가하고 싶었다. 그냥 프로젝트의 루트 폴더 (안 Build.scala)에 당신의 build.sbt이 같은 것을 넣어 :
나는 SBT의 0.13+에 대한 대답을 추가하고 싶었다. 그냥 프로젝트의 루트 폴더 (안 Build.scala)에 당신의 build.sbt이 같은 것을 넣어 :
lazy val root = (project in file(".")).dependsOn(playJongo) lazy val playJongo = RootProject(uri("https://github.com/bekce/play-jongo.git"))
from https://stackoverflow.com/questions/7550376/how-can-sbt-pull-dependency-artifacts-from-git by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] 스칼라 형 ascriptions의 목적은 무엇인가? (0) | 2019.10.31 |
---|---|
[SCALA] 스칼라 생성자 매개 변수의 기본 개인 발을합니까? (0) | 2019.10.31 |
[SCALA] 차이가 감소하고 foldLeft / 함수형 프로그래밍 (특히 스칼라 및 스칼라 API)를 폴드 간의? (0) | 2019.10.31 |
[SCALA] 아파치 스파크 : mapPartitions 대이란? (0) | 2019.10.31 |
[SCALA] 어떻게 스칼라 루프의 탈출합니까? (0) | 2019.10.31 |