들어가기
이번에 같이 스터디하는 햇님들과 함께 이야기를 나누다, 우리가 프로젝트를 진행시 자주 사용되는 Utility 성격의 Module은 라이브러리로 만든다면 어떠할까? 라는 질문으로 라이브러리를 제작하게 되었습니다.
Assertion 이라는 라이브러리를 만들기 위한 여정으로, 그 시작은 JCenter, MavenCentral 등 흔히 Repository 라 불리는 것이 무엇인지에 대해서 이해해보려 합니다.
'Repository라 불리는 것은 무엇인가?' , 'gradle을 사용하지만, Maven Repository에 올릴 수 있는것인가?' 'Repository에 어떻게 올리는 것인가?' 등등 궁금한 부분이 많았습니다. 궁금증도 해결할 겸 나중에 이런 행위를 했었다는 것을 기억하기 위해 포스팅합니다.
JCenter, MavenCentral 이란?
위 두가지의 공통점은 오픈 소스 라이브러리를 호스팅하는 저장소 라고 할 수 있습니다. 또한 호스팅할 수 있다는 말은 다시 공유되어진다 라는 의미가 되겠죠? 안드로이드에서는 JCenter를 많이 사용하는데, 추후 알게된 사실이지만, google Repository가 있는데, 왜 JCenter를 사용하는지 그 이유가 궁금하네요.
MavenCentral 은 Maven 저장소을 호스팅하는 데 더 널리 사용되는 Nexus 소프트웨어의 배후 회사인 Sonatype 에서 운영합니다.
JCenter는 Bintray와 Artifactory를 만든 회사 인 JFlog에서 운영합니다.
왜 JCenter를 사용하면 좋을까?
이 두 가지의 차이점은 단순합니다. JCenter가 MavenCentral 보다 좀 더 뒤에 나왔고, 후발주자 답게, MavenCentral 보다 높은 사용자 경험과 간단한 워크플로우 측면에서 더 우위를 점한 부분이 있었습니다. (내용을 찾아보니, mavencentral 에 라이브러리를 올리는 것은 쉽지 않은 문제였습니다)
실제로 JCenter에 publish 를 하는 경험을 하면서, MavenCentral 에도 올리기 위한 행위를 하려다, 복잡한 UI/UX로 진행하지 못했습니다. 또한 MavenCentral에 직접 배포를 하지 않은 이유는 JCenter에 배포하게 되면 MavenCentral 에 동기화할 수 있는 기능이 존재하기 때문에 진행할 필요가 없었습니다.
살펴보면서 가장 큰 특징으로 Artifactory 가 존재함으로써 얻게되는 효율성이 좋다 는 것을 알게 되었습니다.
위 내용 중 일부 내용을 발췌합니다.
Gradle 에서 사용되는 그 밖에 Repository는?
아래는 Gradle의 공식 문서에 나온 내용입니다. maven, Bintray 그리고 google 총 가지의 Repository를 사용할 수 있음을 확인했습니다.
좀 더 자세한 사용 방법에 대해서는 Gradle 공식 문서를 확인하세요.
이후 포스팅에는?
이 포스트를 시작으로.
JFlog Bintray 에 올렸던 과정과, 그리고 Build.gradle에 어떻게 입력해야 하는지에 대한 부분을 소개할 예정입니다.
그리고 마지막으로, 가장 많은 시간을 소비하게된 SNAPSHOT 에 대한 고찰과 그 방식에 대한 내용으로 마무리할까 합니다.
[참고자료]
1. docs.gradle.org/current/userguide/declaring_repositories.html
2. reflectoring.io/bintray-jcenter-maven-central/#jcenter-vs-maven-central
4. medium.com/@nmauti/publishing-a-project-on-maven-central-8106393db2c3
'개발 관련됨 > 개발 관련 유용한 정보함' 카테고리의 다른 글
[Inteliij] 대문자 - 소문자 변환 단축키 (0) | 2021.06.03 |
---|---|
[intellij] 동일한 단어를 Multi-line 으로 블록하는 방법 (0) | 2021.02.05 |
IntelliJ 에서 정규표현식으로 글자 교체하기 (0) | 2021.01.28 |
[나만의 라이브러리 제작기-3] versioning SNAPSHOT 에 대한 고찰 (0) | 2020.09.12 |
[나만의 라이브러리 제작기-2] JFlog Bintary는 무엇이고, 어떻게 라이브러리를 올렸는가? (0) | 2020.09.12 |
댓글