본문 바로가기

gradle9

gradle 에서 apply from: xxx 은 무슨 의미이지? apply from: xxx 을 이해하기 위해서는 gradle 의 Plugin 을 알아야 합니다. Gradle 의 Plugin 은 무엇을 하는 걸까요? 프로젝트에 플러그인을 적용하면 플러그인이 프로젝트의 기능을 확장할 수 있습니다. 다음과 같은 작업을 수행할 수 있습니다. - Gradle 모델 확장(예: 구성할 수 있는 새 DSL 요소 추가) - 규칙에 따라 프로젝트 구성(예: 새 작업 추가 또는 합리적인 기본값 구성) - 특정 구성 적용(예: 조직 리포지토리 추가 또는 표준 적용) 프로젝트 빌드 스크립트에 논리를 추가하는 대신 플러그인을 적용하면 많은 이점을 얻을 수 있습니다. 플러그인 적용: - 재사용을 촉진하고 여러 프로젝트에서 유사한 논리를 유지 관리하는 오버헤드를 줄입니다. - 높은 수준의 모듈.. 2022. 2. 6.
gradle 기반의 여러 모듈에서 공통으로 쓰인 스크립트가 있다면? 멀티 모듈 시스템에서 공통으로 쓰인 Gradle Script 가 있다면 어떻게 해야 될까? RootProject | | - SubProjectA | -- build.gradle | - SubProjectB | -- build.gradle | - SubProjectC | -- build.gradle | - build.gradle 여기서 `SubProjectA` , `SubProjectB`, `SubProjectC` 가 build.gradle 에서 공통으로 사용되는 내용이 있다고 가정하자. 약 모듈이 5개정도 만들어지면서 반복되어지는 스크립트를 발견되었고, 코드 복사/붙여넣기가 불편하다고 느꼈다. 어떻게 해야될까? `base.gradle` 을 하나 만들어 전체 프로젝트에 공유하면 되지 않을까? 걱정되는 마음.. 2022. 2. 6.
Gradlew Command 살펴보기 ./gradlew > Task :help Welcome to Gradle 6.8. To run a build, run gradlew ... To see a list of available tasks, run gradlew tasks To see a list of command-line options, run gradlew --help To see more detail about a task, run gradlew help --task For troubleshooting, visit https://help.gradle.org BUILD SUCCESSFUL in 521ms 1 actionable task: 1 executed 매개변수가 없이 할경우 위와 같은 결과 나옴 ./gradlew tasks ❯ ./g.. 2021. 1. 27.
Gradle 버전 변경하기 이번에 Gradle에 대해서 버전을 변경하는 방법을 알아보자. Gradle을 변경하게 된 이유는, 사용하던 Gradle 6.6.1 버전을 사용할 경우 아래와 같은 문구가 build할 때 계속 발생하기 때문이였습니다. ./gradlew: line 39: cd: "./: No such file or directory Gradle 버전 마다 위와같은 에러가 발생하는 경우가 있었습니다. 이 때는 Gradle 버전을 변경하면 이 문제를 해결할 수 있습니다. Gradle에 대해서 잘 모를 때는 gradle-wrapper.properties에 있는 값을 수정했었습니다. distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists distributionUrl=ht.. 2021. 1. 27.
4. Gradle 프로젝트에서 Swagger Codegen 적용하기. SwaggerCodeGen CLI 에 대한 설명은 이전에 했었습니다. 이제부터는 Gradle 프로젝트에 SwaggerCodegen을 적용하는 방법에 대해서 알아보겠습니다. 먼저 Gralde SwaggerCodegen Plugin 을 알아야 합니다. 저 또한 여기 나온 메뉴얼대로 진행했습니다. 당연히 우선적으로 행해져야 하는 부분은 의존성을 추가하는거겠죠? plugins { id 'org.hidetake.swagger.generator' version '2.18.2' } repositories { jcenter() } dependencies { swaggerCodegen 'io.swagger:swagger-codegen-cli:2.4.2' // Swagger Codegen V2 swaggerCodegen .. 2020. 10. 18.
[나만의 라이브러리 제작기-3] versioning SNAPSHOT 에 대한 고찰 배경 Bintray에 배포를 위한 준비를 마칠 쯤, Snapshot 에 대한 의구심이 들었습니다. 왜냐하면, SNAPSHOT 이란? 아직 배포되기 전 임시로 만들어 놓는 버전으로서, SNAPSHOT 은 개발 중이라는 버전을 의미한다고 알고 있었습니다. 그렇다면, 버전 이름을 SNAPSHOT으로 한다면 같은 이름으로 override되서 배포되지 않을까? 라는 호기심으로 진행되었습니다. Snapshot 이란? "A snapshot version in Maven is one that has not been released." stackoverflow.com/questions/5901378/what-exactly-is-a-maven-snapshot-and-why-do-we-need-it 즉, 개발중인 버전을 표.. 2020. 9. 12.
[나만의 라이브러리 제작기-2] JFlog Bintary는 무엇이고, 어떻게 라이브러리를 올렸는가? 들어가기 JFlog Bintray는 자바 의존성을 추가하기 위한 공개 저장소 중 JCenter에 배포하기 위해 존재하는 플랫폼 중 일부입니다. 그 부분에 대해서 좀 더 자세히 살펴보고, 올리는 과정에서 겪었던 이슈를 적어볼까 합니다. JFlog Bintray? 사실 위에서 언급한 것과 같이, JFlog는 그저 배포를 위한 플랫폼 중 일 부분입니다. Bintray는 "Software Distrubutuin as Service" 로서 홈페이지 설명에 따르면, - 단 한번의 배포로, 다양한 주요 패키지(docekr, debian, npm, maven ... )들을 한번에 배포할 수 있게 도와준다. - REST API를 활용하기 때문에 Jenkins와 같은 배포 도구에도 손쉽게 붙여 사용할 수 있다. - 그리고.. 2020. 9. 12.
[나만의 라이브러리 제작기-1] JCenter, MavenCentral 은 무엇인가? 들어가기 이번에 같이 스터디하는 햇님들과 함께 이야기를 나누다, 우리가 프로젝트를 진행시 자주 사용되는 Utility 성격의 Module은 라이브러리로 만든다면 어떠할까? 라는 질문으로 라이브러리를 제작하게 되었습니다. Assertion 이라는 라이브러리를 만들기 위한 여정으로, 그 시작은 JCenter, MavenCentral 등 흔히 Repository 라 불리는 것이 무엇인지에 대해서 이해해보려 합니다. 'Repository라 불리는 것은 무엇인가?' , 'gradle을 사용하지만, Maven Repository에 올릴 수 있는것인가?' 'Repository에 어떻게 올리는 것인가?' 등등 궁금한 부분이 많았습니다. 궁금증도 해결할 겸 나중에 이런 행위를 했었다는 것을 기억하기 위해 포스팅합니다. .. 2020. 9. 12.
build.gradle 에서 다양한 방식으로 변수 사용하기. 들어가기 다양한 방법들 build.gradle 에서 변수를 사용하는 방식은 아래와 같습니다. 사실 위 System.xxx 의 경우 gradle에서 제공하기 보다는 Java에서 제공한다는 말이 맞습니다. 그러나 제목과 같이 build.gradle 에서 사용하는 방법이므로, 포함시키겠습니다. task printTask(){ println(System.getenv("X_USER")) println(project.getProperties()["X_USER"]) println(System.getProperty("X_USER")) } > "xxx" ./gradlew printTask "xxx" 여기서 xxx 하는 것에 따라서 변수를 다르게 넣을 수 있습니다. System.getenv("X-USER") // 시스템의.. 2020. 9. 4.