인프런 커뮤니티 질문&답변

jungeuiyub님의 프로필 이미지

작성한 질문수

스프링 부트 개념과 활용

자동 설정 만들기 1부: Starter와 AutoConfigure

Gradle을 사용할 때의 질문입니다.

작성

·

903

0

요번 강의가 Spring Boot Auto Configure를 사용해 자동 설정을 만든 뒤, Maven local repository에 publish하고, 다른 프로젝트에서 local maven repository로부터 읽어와서 자동 설정된 그 빈을 사용하는 것으로 이해했는데요

저는 Gradle을 사용하고 있어서,

Maven local repository로 publish 하는 데에는 자동 설정하는 데에 사용한 gradle plugins에 maven-publish를 추가하여 publishToMavenLocal task를 사용하고,

가져올 프로젝트에서는 gradle의 repositories에 mavenLocal()을 추가해줘서 가져오려고 했습니다만.. 이유는 몰라도 생성한 빈 자동 설정 라이브러리를 찾지 못하더라구요ㅠ

제 maven의 settings.xml에 localRepository 경로를 추가해주어도 읽질 못하고, 열심히 구글링 해봤으나 적용해도 안되는 것들 뿐일더러, 정확히 이해는 못했지만 찾은 포스팅 중 하나에서는 (https://medium.com/decisionbrain/when-to-not-use-mavenlocal-in-your-gradle-build-script-6da03902f9df)  Gradle cache와 maven local repo는 다른 것이기 때문에 사용을 지양하는 것으로 이해했습니다. 결국 어떻게든 돌게 만들고 싶어서 maven local repository를 사용하지 않고, gradle의 composite build를 사용해서 자동 설정 라이브러리를 원 프로젝트에서 함께 빌드하도록(?) 해서 강좌처럼 할 수 있었는데요. 서론이 길었네요.. 크게 질문은 아래와 같은 것입니다

1. Gradle 프로젝트에서 mavenLocal()을 사용할 수 있는 방법이 있는지?

2. 만약에 방법이 있다 하더라도, 지금처럼 실습 이외에 제가 알아둘만한 의미가 있는지..? 즉 정말 지양해야 하는 방식인가요? 아무래도 central repo나 사내 repo를 이용하는 경우가 대부분일 것으로 보여서 제가 괜히 의미없는 걸 해보려고 한 건가 싶어서요

3. repository 측면에 있어서 gradle과 maven이 어떤 관계에 있는지 참조할만한 자료가 있을까요? 검색해보려고 했으나 키워드를 정하기가 쉽지 않아서ㅠ.. 아니면 간단히 설명해주시면 그걸 기반으로 키워드 검색을 제가 해볼 수 있을 것 같아요

항상 감사하게 듣고 있습니다.. 질문이 좀 길죠..?ㅠㅠ 미리 죄송합니다

답변 2

2

jungeuiyub님의 프로필 이미지
jungeuiyub
질문자

제가 작성한 코드에 대해 참고가 되실까 하여 commit 링크도 올려봅니다..(왠지 모르겠는데 gradle wrapper도 올라갔네요..)
https://github.com/dwywdo/TIL/commit/7b1c3db76c43ca45a294198b8da2c9a5913b80b1

1

백기선님의 프로필 이미지
백기선
지식공유자

1. 음.. 그래들은 제가 잘 안써봐서 모르지만 그래들에도 특정한 경로를 저장소로 등록하는 방법이 있는 것 같은데요. 이걸 써서 메이븐 로컬 저장소 위치를 등록하면 가능할 것 같습니다.

https://docs.gradle.org/current/userguide/declaring_repositories.html#sub:local-repos

2. 메이븐과 그래들을 둘 다 쓰는 프로젝트라면 그런 설정이 필요하겠지만 보통은 빌드툴을 두개를 같이 쓰진 않을테니...

3. 위 링크에 있는 문서를 참고하시면 어떨까요. 저는 gradle maven repository라고 검색해서 나온 그래들 문서를 찾았는데 구글 검색 제일 상단에 저 문서가 있더라구요.