무료로 Github 패키지에 Scala 라이브러리 게시
npm
와 같은 곳으로 공개 및 비공개 패키지를 호스팅할 수 있습니다. 현재 Github 패키지는 npm
, gem
, mvn
, gradle
, dotnet
(공공 라이브러리의 경우 무료)와 같은 많은 빌드 도구를 지원합니다. 그러나 sbt
에 대한 지원은 없으며 이는 scala
개발자에게 그다지 친숙하지 않습니다. 다행스럽게도 sbt-github-packages 플러그인을 만들어준 djspiewak
에게 감사드립니다. 이를 통해 scala 라이브러리를 Github 패키지에 게시할 수 있습니다. 방법은 다음과 같습니다.🧧 Github 패키지에 sbt 라이브러리 게시
We will use sbt-github-packages plugin in this tutorial
1. package:write 권한으로 개인 액세스 토큰 생성
settings - developer settings - personal access token
에서 개인 액세스 토큰 받기그런 다음 goto
generate token
, 이 토큰을 기억하십시오. 3단계에서 사용할 것입니다.2. 기존 sbt 프로젝트에 sbt-github-packages 플러그인 추가
게시할 준비가 된 라이브러리가 있다고 가정합니다. 코드베이스에 이 행을 추가하십시오
./project/plugins.sbt
.addSbtPlugin("com.codecommit" % "sbt-github-packages" % "0.5.2")
3. 플러그인이 작동하도록 전역 git github.token을 설정합니다.
git config --global github.user <github_username>
git config --global github.token <personal_token>
어디에:
<personal_token>
는 step 1
에서 방금 생성한 토큰입니다. 이 명령을 실행하면 ~/.gitconfig
에서 볼 수 있습니다.[github]
token = <personal_token>
user = <github_username>
...
4. 패키지 게시 준비
이 줄을 귀하의
./build.sbt
에 추가하십시오.githubOwner := "<github_username>"
githubRepository := "<github_repo_name>"
githubTokenSource := TokenSource.GitConfig("github.token")
추가한 후 빌드를 다시 실행하거나 IDE를 다시 시작해야 합니다(IntelliJ를 사용하는 경우).
예를 들어 내 사용자 이름은
gjuoun
이고 이 저장소 이름은 github-packages-playground
입니다. 귀하의 필드를 채우십시오.뒤에서
githubTokenSource := TokenSource.GitConfig("github.token")
가 github 토큰을 읽은 다음 플러그인이 Github 패키지에 게시할 권한을 부여받습니다.5. Github 패키지에 게시
이 명령을 실행하여 패키지를 게시합니다.
> sbt publish
그러면 리포지토리에서 사용할 수 있는 이
package
탭이 표시됩니다.모든 이름 지정 규칙은
./build.sbt
의 변수에서 가져옵니다.패키지 이름은
<organization>.<name>_<scalaVersion>
이고 이미지는 0.1.2
의 패키지 버전<version>
을 나타냅니다.🧨 Github 패키지에서 sbt 패키지 사용
We will use sbt-github-packages plugin in this tutorial
You should have followed step 1-5 above and published your package.
1. sbt가 패키지를 사용할 수 있도록 sbt-github-packages 플러그인 추가
이 라인을 귀하의
./project/plugins.sbt
에 추가하십시오.addSbtPlugin("com.codecommit" % "sbt-github-packages" % "0.5.2")
2. ./build.sbt에 라이브러리 리졸버 및 종속 항목 추가
코드베이스
./build.sbt
에 다음 행을 추가하여 플러그인이 작동하도록 합니다.githubTokenSource := TokenSource.GitConfig("github.token")
resolvers += Resolver.githubPackages("<github_username>", "<github_repo_name>")
libraryDependencies += "<organization>" %% "<package_name>" % "<version>"
음, 패키지와 일치시켜야 하는 많은 필드가 있습니다.
<github_repo_name>
필드를 무시해도 됩니다. 이렇게 하면 플러그인이 github 계정<github_username>
에서 사용 가능한 모든 패키지를 확인합니다.이 패키지를 예로 들어 보겠습니다.
어디에:
github_username = gjuoun
github_repo_name = github-packages-playground
organization = gjuoun
package_name = hellopackage
version = 0.1.6
3. 코드 컴파일
이제 새 플러그인으로 코드를 컴파일할 수 있습니다.
> sbt compile
4. 패키지 사용
패키지에 코드가 있다고 가정합니다.
// https://github.com/gjuoun/github-packages-playground/blob/master/src/main/scala/org/gjuoun/lib/calculator.scala
package org.gjuoun.lib
class Calculator{
def add(x: Int, y:Int): Int ={
x+y
}
}
패키지를 코드로 가져오는 것은 쉽습니다. 패키지 이름
org.gjuoun.lib
을 따르기만 하면 됩니다.import org.gjuoun.lib.Calculator
// use it with
var cal = new Calculator()
Console.println(cal.add(10, 100))
축하합니다. Scala 라이브러리를 Github 패키지에 성공적으로 게시했습니다!
데모 코드를 찾을 수 있습니다here.
Reference
이 문제에 관하여(무료로 Github 패키지에 Scala 라이브러리 게시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/gjuoun/publish-your-scala-library-to-github-packages-4p80텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)