티스토리 뷰
들어가기에 앞서 퍼블리시란?
SBT나 apt, npm, Gradle 등은 사용하고자 하는 라이브러리를 명시하면 원격 저장소에서 가져와 개발자가 사용할 수 있도록 도와주는 도구들이다. 이런 도구들이 참조하는 원격 저장소에 라이브러리를 저장하는 것을 퍼블리시라고 한다.
아래 내용은 SBT를 통해서 퍼블리시하는 내용을 담고 있다.
SBT를 통해서 퍼블리시 하는 방법은 여러 가지가 있다.
1. publishTo := Some("Sonatype Snapshots Nexus" at "https://Address of Nexus")
: Nexus 원격 저장소에 퍼블리시하는 방법이다.
2. publishTo := Some(Resolver.file("file", new File( "로컬 파일 경로" )))
: 원하는 로컬 파일 경로에 퍼블리시하는 방법이다.
위 방법을 build.sbt 파일에 작성한 후 SBT Command Line에 들어가 publish 명령어를 통해서 설정된 경로로 퍼블리시가 된다. 또 다른 방법은 위에 적힌 방법을 사용하지 않고 publishLocal 명령어를 통해서 로컬에 저장하는 방법인데 SBT는 ~/.ivy2를 저장 경로로 사용하기 때문에 ~/.ivy2/local에 저장이 된다.
이렇게 저장된 라이브러리가 원격 저장소에 있고 개발을 할 때 매번 원격 저장소에서 가져온다면 그것은 매우 비효율적일 것이다. 이 때문에 라이브러리를 캐시할 수 있는데 캐시된 라이브러리들은 ~/.ivy2/cache에 저장되어 한 번만 내려받아 사용할 수 있게 만들어져 있다.
SBT에서 라이브러리를 검색하는 순서는 캐시 > 로컬 > 원격 저장소 순이다.