SBT로 cloud의 artifactory에 Scala 프로젝트를 deploy 해 보자!

5632 단어 ScalaArtifactorysbt
서비스를 만들면 아무래도 여러 서비스에 걸치는 모듈이 생겨 버립니다.

1. 서비스 형태



그럴 때, Nexus나 Archiva, Artifactory 가 있어, 우선은, 유상판, 무상판이라고 하는 요금의 축과 클라우드판, 온프레판이라고 하는 구축 장소의 축이 있습니다.



유상판
무료 버전


구름
Artifactory
Maven, Rubyforge, Cocoapods

온프레
Nexus, Artifactory
Nexus, Artifactory


빠지는 것은 상당히 있습니다만, 상기와 같은 느낌일까요.

2. 금액과 보안



다음으로 금액이나 보안이라는 축이 나온다고 생각합니다.
(먼저, 여기의 논의가 나오고 상기의 매트릭스가 자동적으로 1택이 되는 일도 있습니다만..)

2-1. 금액



왼쪽 상단의 「유상판×클라우드」가 매달 예를 들어 1만엔 정도라고 해서, 어느 정도의 규모로 시스템 개발을 하고 있는지, 모듈 관리에 얼마나 돈을 쓰는 거야? , 같은 이야기가 있습니다.

매일의 빌드, 배포, 리포지토리 관리, 거기에 가세해 라이브러리 관리,로서, 한편, 서비스가 점점 새롭게 만들어지거나 개선되는 환경이라고 0.2 정도의 공수를 취해 버릴지도 모릅니다. 기업에 따릅니다만, 속인화하지 않게 문서화나 트레이닝도 생각하면, 인건비는 어느 형태를 선택해도 발생합니다.



유상판
무료 버전


구름
서비스 자체의 운용 없음
서비스 자체의 운용 없음

온프레
돈을 지불하고 자사 내에 구축한다. 지원은 있더라도 운영할 필요가 있고. 기본적으로 조직 단위로 사용한다는 이해
서비스 자체의 운용은 있어. 팀별 또는 조직 전체에서 사용하는지, 운용 공수에 대한 논의도 있다


2-2. 보안 및 공개 범위 문제



작성한 소스 코드, 라이브러리는 공개할 수 있는 것, 라고 하는 논의가 있습니다.
또한 보안 관리가 가능합니까? 라는 논의도 있습니다.



유상판
무료 버전


구름
개인 저장소. 기본적으로 안전.
세계 공개. 세계 평화에는 공헌할 수 있지만 회사가 지키고 싶은 제품은 공개할 수 없습니다. 세계 평화에 기여하고 기업 가치와의 트레이드 오프가됩니다.

온프레
기업 네트워크에서 이용하기 때문에 돈을 지불한다면 이것이 가장 안전한가?
무료이며 기업 네트워크 내에서 사용합니다. 매우 안전합니다.


3. 클라우드 버전의 Artifactory를 사용해 보았다.



프리 트라이얼에서도 유상판의 클라우드의 Artifactory를 이용할 수 있다는 것이므로 이용해 보기로 했습니다.
별로 구축·운용을 하고 싶지 않구나, 라는 강한 생각에 달렸습니다.

3-1. Artifactory로 도메인 설정하기



아래 페이지에서 등록합니다.

조직 이름을 입력하고 제출하면,
  • https://${組織名}.artifactoryonline.com/${組織名}/webapp

  • 라는 형태로 제공되게 됩니다.

    3-2. 샘플을 보면서 빌드를 실행해 본다



    아래와 같이 부드러운 샘플 저장소가 있습니다.
  • htps : // 기주 b. 이 m / JF 여과 g에서 v / p 여지 ct-에 m ぇ s

  • //github.com/JFrogDev/project-examples/blob/master/sbt-example/build.sbt
    
    lazy val root = (project in file(".")).
      settings(
        name := "SBT_Example",
        version := "1.1-SNAPSHOT",
        scalaVersion := "2.11.4"
      )
    
      resolvers += "Artifactory" at "http://localhost:8081/artifactory/jcenter"
    
      publishTo := Some("Artifactory Realm" at "http://localhost:8081/artifactory/libs-snapshot-local")
    
      credentials += Credentials(new File("credentials.properties"))
    
      libraryDependencies += "org.apache.derby" % "derby" % "10.4.1.3"
    

    위의 대상 호스트를 변경하고 credentials.properties 파일을 준비합니다.

    build.sbt
    scalacOptions := Seq("-unchecked", "-deprecation", "-encoding", "utf8")
    
    
    lazy val root = (project in file(".")).
      settings(
        organization := "org.triplew.example",
        name := "akka-tracing-example",
        version := "1.0-SNAPSHOT",
        scalaVersion := "2.11.8"
      )
    
    resolvers += "Artifactory" at "https://${組織名}.artifactoryonline.com/artifactory/jcenter"
    
    publishTo := Some("Artifactory Realm" at "https://${組織名}.artifactoryonline.com/${組織名}/libs-snapshot-local")
    
    credentials += Credentials(new File("credentials.properties"))
    
    libraryDependencies += "org.apache.derby" % "derby" % "10.4.1.3"
    

    그리고 그 후,
    sbt publish
    

    그러자 갈 수있었습니다.



    감상



    돈을 지불할 수 있다면, 그렇게 편리한 것은 없다. . .
    Docker나 npm등도 있으므로, 앞으로도 사용해 갈 것입니다^^

    오늘은 이상입니다.

    좋은 웹페이지 즐겨찾기