일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- java
- 토비의스프링3.1
- lambda
- Spring
- AutoConfiguration
- Kotlin for Java Developers
- springwebmvc
- DesignPattern
- 토비의스프링
- springboot
- 컴퓨터시스템
- 클린코드
- JPA
- 프록시
- gradle
- 빌드툴
- FunctionalInterfaces
- Immutable
- IOC
- exception
- 메이븐
- 링커
- hibernate
- 자바
- ApplicationContext
- DispatcherServlet
- 링킹
- String
- ORM
- beanfactory
- Today
- Total
목록gradle (2)
엔지니어로 가는 길
* 한 두 달 전쯤 진행했던 업무 빌드 타임 30분 담당하고 있는 서비스에서 의존성을 추가하거나 수정할 때마다 30분이 소요됐다. 처음엔 '원래 그런가 보다' 하고 넘어갔는데, 해당 서비스에 대해 알게 될수록 30분은 너무 과하다는 생각이 들었다. 의존성을 하나 추가하거나 수정하는 아주 간단한 수정이었고, 프로젝트도 그렇게 거대하고 복잡하지 않은 데 너무 오랜 시간이 걸린다고 생각했다. 그러던 차에 의존성을 수정할 일이 있는 업무를 맡게 되었고, 빌드 타임부터 개선해보기로 했다. 원인이 뭘까 해당 서비스는 gradle 멀티 모듈 프로젝트였고, gradle 버전은 4.X였다. 처음에는 build.gradle 파일을 보며 빌드 타임이 느린 원인을 몇 가지 추측해보았다. - deprecated 저장소 - 불필..
버전 충돌이란 하나의 dependency 그래프 내에 같은 라이브러리의 버전이 두 개 이상 존재하는 것을 말한다. 빌드툴은 버전 충돌을 해결해야 하며, 빌드툴마다 다른 버전 충돌 해결 전략을 가질 수 있다. 가장 대표적인 빌드툴에 해당하는 메이븐과 그래들은 버전 충돌 해결 전략이 다르다. 이 글에서는 버전 충돌이 무엇인지, 메이븐과 그래들에서는 각각 버전 충돌을 어떻게 해결하는지에 대해 알아본다. 참고) 메이븐에서는 버전 충돌 해결 프로세스를 dependency mediation, 그래들에서는 version conflict resolution이라고 부른다. The concepts of version resolution Version resolution란 unresolved dependency 그래프를 입..