JIG sbt-plugin을 만들었습니다.

5132 단어 JIGDDDScalasbt
이 기사는 Scala Advent Calendar 2019의 22 일째입니다.

sbt-jig는 여기 → htps : // 기주 b. 코 m / 요시 요시 후지이 / sbtji g

이하, 제작에 있어서의 배경과 자세하게 설명.

배경



여러분은 JIG(지그)라는 툴을 알고 계십니까?

자세한 내용은 아래 링크를 읽으시면 ...
  • htps : // speake r에서 ck. 코 m / 이로 f / 지 g
  • htps : // 기주 b. 코 m / d d ゔ ぁ / 지 g

  • JIG는 Java로 작성된 코드와 빌드된 클래스 파일을 구문 분석하여 도메인 모델의 관계를 좋은 느낌으로 다이어그램이나 Excel로 보여주는 도구입니다.

    최근, 이쪽의 툴을 업무나 워크숍등에서 사용해 주셔, 매우 편리하게 하고 있습니다.

    어떻게든, 이쪽의 툴을 Scala에서도 사용할 수 없는 것인가라고 툴 작성자의 @irof 시험에 움직였을 때, 나왔습니다.





    단,
  • 소스 코드를 분석 할 수 없으므로 ScalaDoc을로드하고 그림에 표시 할 수 없습니다.
  • case class 나 컴패니언 객체가 있으면 prefix에 $가 붙어있는 모델이 출력되어 중복 그림이됩니다
  • Scala라면 enum을 패턴으로 구현하는 경우가 많기 때문에 열거 형을 표시 할 수 없다

  • 같은 절각의 기능을 모두 사용할 수는 없습니다.

    이 근처는, 맛, 커버하는 것 같은 Pull Request를 올릴 수 있으면-라고 몽상하고 있습니다.

    사용법



    bintray 되어 sonatype 나름대로 업 하려고 생각 했습니다만 , 조금 기사 에 늦지 않아 ...

    GitHub를 직접 지정하는 방법으로 갑니다.

    여기 를 참고하였습니다.

    project/plugins.sbt
    resolvers += Resolver.jcenterRepo
    
    lazy val root = project.in(file(".")).dependsOn(githubRepo)
    
    lazy val githubRepo = RootProject(uri("git://github.com/yoshiyoshifujii/sbt-jig.git#master"))
    

    그런 다음 sbt를 시작하고 jigReports를 실행하면됩니다.

    실행하면 target/jig 디렉터리에 보고서가 출력됩니다.

    구성



    JIG의 CLI에서 지정할 수 있는 내용을 그대로 Configuration으로 지정할 수 있습니다.
        jigDocumentTypeText in jig := "",
        jigOutputDirectoryText in jig := "./target/jig",
        jigOutputOmitPrefix in jig := ".+\\.(service|domain\\.(model|type))\\.",
        jigModelPattern in jig := ".+\\.domain\\.(model|type)\\..+",
        jigProjectPath in jig := "./",
        jigDirectoryClasses in jig := s"target/scala-${scalaBinaryVersion.value}/classes",
        jigDirectoryResources in jig := s"target/scala-${scalaBinaryVersion.value}/classes",
        jigDirectorySources in jig := "src/main/scala"
    

    요약



    이번은, 우선, JIG를 sbt로부터 실행할 수 있도록(듯이) 한 것입니다만, JIG 본체의 쪽에, Scala용의 확장 포인트를 마련해 주도록(듯이) 하고 싶다-라고 생각하고 있습니다.

    이상입니다.

    좋은 웹페이지 즐겨찾기