무료로 Github 패키지에 Scala 라이브러리 게시

7553 단어
아시다시피 Github Packages는 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.

    좋은 웹페이지 즐겨찾기