IntelliJλ νλ‘μ νΈλ₯Ό λ‘λν λ sbtμ λν΄ μ€μ ν νκ²½ λ³μλ₯Ό μ μνλ λ°©λ²μ μ 곡νμ§ μκΈ° λλ¬Έμ μ΄ νλ¬κ·ΈμΈμΌλ‘ νλ‘μ νΈλ₯Ό λ‘λν μ μμ΅λλ€. μ΄μ μ μλνλ κΈ°μ μ΄ OS μ λ°μ΄νΈμμ μμλμκΈ° λλ¬Έμ MacOSμ μ±μ λν΄ μ€μ νλ κ²μ μ λ’°ν μ μλ κ² κ°μ΅λλ€.
μ½κ² μ€μ ν μ μλ JVM μμ±μΌλ‘ github ν ν°μ λμμΌλ‘ μ 곡ν μ μλ€λ©΄ μ’μ κ²μ λλ€.
μ΄λ κ² νλ TokenSource
μ λν PRμ μλ½νκ² λμ΄ κΈ°μ©λλ€!
μ΄κ²μ΄ λμμ΄ λ κ²μ΄λΌλ λ° λμνμ§λ§ νμν κ²½μ° λΉ λ₯Έ/λλ¬μ΄ μ루μ μΌλ‘ μ΄ μμ μ μννκ³ μμ΅λλ€.
githubTokenSource := TokenSource.GitConfig("github.token") || TokenSource.Environment("GITHUB_TOKEN")
κ·Έ ν΄κ²° λ°©λ²μ λλ₯Ό μν΄ μλνμ§ μμ΅λλ€.
κ·Έ ν΄κ²° λ°©λ²μ λλ₯Ό μν΄ μλνμ§ μμ΅λλ€.
μ¬μ©ν κ°μΈμ© μ‘μΈμ€ ν ν°μ ν¨ν€μ§ λ²μκ° μ€μ λμ΄ μμ΅λκΉ? ~/.gitconfig νμΌμλ λ€μκ³Ό κ°μ μ€μ΄ μμ΄μΌ ν©λλ€.
[github]
token = <github_token_value>
μ, .gitconfig νμΌμ μλ λ΄μ©μ λλ€.
κ·Έ ν΄κ²° λ°©λ²μ λλ₯Ό μν΄ μλνμ§ μμ΅λλ€.
μ¬μ©ν κ°μΈμ© μ‘μΈμ€ ν ν°μ ν¨ν€μ§ λ²μκ° μ€μ λμ΄ μμ΅λκΉ? ~/.gitconfig νμΌμλ λ€μκ³Ό κ°μ μ€μ΄ μμ΄μΌ ν©λλ€.
[github] token = <github_token_value>
λΉμ·ν ~/.gitconfig
μ μλνμ§λ§ μ νΈμμλ λ§μ§ μμμ΅λλ€.
IntelliJμμ νκ²½ λ³μκ° μλνλλ‘ νλ €λ©΄ νλ‘μ νΈ λ€μ λ‘λλ₯Ό μν΄ sbt μ Έμ νμ±νν©λλ€.
λΉλ λꡬ > sbt > sbt νλ‘μ νΈ
μ΄κ²μ Community Edition λ²μ 2020.3μμ μ μκ² ν¨κ³Όμ μ΄μμ΅λλ€.
IntelliJμμ νκ²½ λ³μκ° μλνλλ‘ νλ €λ©΄ νλ‘μ νΈ λ€μ λ‘λλ₯Ό μν΄ sbt μ Έμ νμ±νν©λλ€.
λΉλ λꡬ > sbt > sbt νλ‘μ νΈ
μ΄κ²μ Community Edition λ²μ 2020.3μμ μ μκ² ν¨κ³Όμ μ΄μμ΅λλ€.
μ΄κ²μ λλ₯Ό μν΄ μλνμ§ μμμ΅λλ€. νκ²½ λ³μλ₯Ό ν΅ν΄ ꡬμ±νμ΅λλ€. ν΄κ²° λ°©λ²μΌλ‘ sbt-dotenv νλ¬κ·ΈμΈμ μ¬μ©νμ¬ μ΄ λ¬Έμ λ₯Ό ν΄κ²°νμ΅λλ€. κ·Έ ν IntelliJ κ΅¬μ± λλ κΈ°ν λ³κ²½ μ¬ν μμ΄ λͺ¨λ κ²μ΄ μλνμ΅λλ€.
μ΄ λ¬Έμ μμ μ μλ ν΄κ²° λ°©λ²μ λ³νμ΄ IntelliJ μ€μ μ μ μ©λμμ΅λλ€.
githubTokenSource := TokenSource.Or(
TokenSource.Environment("GITHUB_TOKEN"), // Injected during a github workflow for publishing
TokenSource.GitConfig("github.token") // local token set in ~/.gitconfig
)
μ°λ¦¬ νμ githubTokenSource κ°μ build.sbtμ κ° νλ‘μ νΈ κ΅¬μ± λΈλ‘μ κ³΅ν΅ μ€μ μΌλ‘ μ£Όμ νμ¬ λ¨μΌ νλ‘μ νΈ λ° λ€μ€ νλ‘μ νΈ λΉλλ‘ μ΄ λ¬Έμ λ₯Ό ν΄κ²°νλ€κ³ μκ°νμ΅λλ€. ~/.gitconfig github.token νλͺ©μ΄ μκ±°λ GITHUB_TOKEN νκ²½ λ³μκ° μλ μ¬μ©μ, IDE λ° GitHub μμ μμ 곡κ°μμ λͺ¨λ κ²μ΄ μλμμ΅λλ€.
μ°λ¦¬ μ€ ν λͺ
μ΄ Lagom νλ¬κ·ΈμΈμ runAll
μμ
μ μ¬μ©νκΈ°λ‘ κ²°μ νκΈ° μ κΉμ§.
μ΄κ²μ μλ λ¬Έμ μ λν΄ μ¦μ μ£½μ΅λλ€.
μλΉμ€ λΌλ₯Ό λ°°ν¬νκΈ° μν΄ Lagom νλ¬κ·ΈμΈμμ μ¬μ©νλ λΆκΈ° 컨ν μ€νΈμλ νκ²½ λ³μμ ~/.gitconfig νμΌμ΄ λͺ¨λ μμ΅λλ€.
μ°λ¦¬λ λΆκΈ°λ μ€ν νκ²½μ λν νκ²½μ μ€μ νλ λ°©λ²μ μ°κ΅¬νκ³ μμ΅λλ€.
κ·Έλ¬λ GitHub ν¨ν€μ§ νλ¬κ·ΈμΈ μμ μ΄ νΈμΆλμ§ μλ κ²½μ°μλ GITHUB_TOKENμ΄ μ 곡λμ΄μΌ νλ€λ μ λ°μ μΈ κ°μ μ ν΄λΉ ν ν°μ μ΄λ―Έ μ½κ² μ¬μ©ν μ μλ μ¬μ©μμ λ΄μκ² μ€λ§μ€λ¬μ΄ κ²μΌλ‘ νλͺ λμμ΅λλ€.
SBT μ λ¬Έκ°.
githubTokenSource
sbt-github-packages
μ κ°μ νλ¬κ·ΈμΈμ΄ λͺ¨λ λμ μΌλ‘ μ μλ νλ‘μ νΈ( Lagomμ νλ¬κ·ΈμΈμ΄ μμ±νλ κ²μ²λΌ), λͺ¨λ λΉλ λ¨κ³ λ° λͺ¨λ λΆκΈ° 컨ν
μ€νΈμ λν΄?
SBTκ° λ€μμ€νμ΄μ€ λλ μν μΊμλ₯Ό κ΄λ¦¬νλ λ°©λ²μ λν μΈλΆ μ 보λ₯Ό μμΈν μ΄ν΄λ΄μΌ νλ λͺ¨λ μμ΄μ κ±Έμ³ κ³μν΄μ λ³νμ§ μλ μ격 μ¦λͺ μ μμΉλ₯Ό ββλͺ μμ μΌλ‘ μ£Όμ₯ν΄μΌ νλ κ²μ λ²κ±°λ‘μ΄ μΌμ λλ€.
μλ§λ μ΄κ²μ μ΄ νΉμ νλ¬κ·ΈμΈμ μλͺ»μ΄ μλμ§λ§ μ΄ νλ¬κ·ΈμΈμ λͺ¨λ κ²½μ°λ₯Ό 컀λ²νκΈ° μν΄ μ΄ λͺ¨λ λ΄λΆ SBT μμ μ μνν΄μΌ νλ κ²μ λν΄ λΉλλ°λ κ²μ λλ€.
κ°μ₯ μ μ©ν λκΈ
IntelliJμμ νκ²½ λ³μκ° μλνλλ‘ νλ €λ©΄ νλ‘μ νΈ λ€μ λ‘λλ₯Ό μν΄ sbt μ Έμ νμ±νν©λλ€.
λΉλ λꡬ > sbt > sbt νλ‘μ νΈ
μ΄κ²μ Community Edition λ²μ 2020.3μμ μ μκ² ν¨κ³Όμ μ΄μμ΅λλ€.