SN1
대표칭호 없음
이해도 | 플러그인, 알고리즘 |
---|---|
게임버전 (JE) | 버킷 |
여차여차해서 결국 라이브러리를 만들었습니다.
그런데 정작 Gradle에서 사용해보려고 하니, Gradle에서 다른 Dependency는 잘만 받아오면서 이 라이브러리만 사용하지 못하고 있습니다.
Gradle의 캐시 디렉토리를 뒤져보니 pom 파일은 정상적으로 다운로드 된 상태인데... 대체 왜 안 되는 걸까요.
repositories { ... maven { url = "https://jitpack.io" } ... } dependencies { compileOnly 'io.papermc.paper:paper-api:1.19.2-R0.1-SNAPSHOT' implementation "com.gitlab.exmserver:mol:main-SNAPSHOT" }
JitPack에서 하라고 하는 대로 전부 한 것 같은데... 대체 왜 안될까요?
JitPack에서 Build 자체는 매우 정상적으로 진행된 것을 확인했습니다.
작은거인
2022.10.01그래들 리로드 하셨죠..?
SN1
2022.10.01기본적인 대처법은 다 했다고 생각합니다. 리로드, 캐시 삭제 후 재시도 등...
qsef1256
2022.10.01해당 리포지토리를 좀 확인하고 있는데, Release 나 Package나 공개적으로 되어 있는 게 없는 것 같더라고요.
그리고 pom 파일이 맞나요? 얘 Gradle 쓰던데요
SN1
2022.10.01JitPack은 태그나 릴리즈가 없어도 <브랜치>-SNAPSHOT으로 최신 커밋을 사용할 수 있습니다. 또한 JitPack은 Gradle 프로젝트일 경우 maven-publish 플러그인을 이용해 gradle publishToLocalMaven 작업을 수행해서 Maven과의 호환성을 제공합니다.
실제 빌드 역시 성공적으로 진행되었습니다.
공식 문서에 적힌대로 다 한 것 같은데 뭐가 문제일까요...
qsef1256
2022.10.01사용하지 못한다는 게 정확히 무슨 뜻인가요?
SN1
2022.10.01Paper API와 제 라이브러리를 다음과 같이 사용한다고 가정할 때, Gradle이 제 라이브러리만 불러 오지를 못합니다.
Paper API는 Paper에서 제공해주니
compileOnly
를 써야 하고, 제 라이브러리는 Paper에서 제공해주지 않으므로implementation
을 쓴 후 나중에shadowJar
등을 진행해야겠죠.어찌되었건 dependencies로 선언한 이상 IDE에서 사용이 가능해야하는데, cannot find symbol이었나, 이와 비슷한 오류를 내면서 붉은색으로 글씨가 표시되더라고요. 아예 해당 패키지가 Gradle에서 불러와지지 않은 것 같아보입니다. 수동으로
import com.gitlab.exmserver
까지만 입력해도 exmserver 부분이 붉게 표시되거든요.qsef1256
2022.10.01pom.xml 내용까지 정확히 확인해보셨나요? 그리고 Invalidate Cache는 한 게 맞죠? (했었을꺼라 생각됩니다만)
SN1
2022.10.01Maven 사용 경험이 없어 정확히는 장담할 수 없지만, 별 문제는 없어 보입니다.
Paper API의 pom 파일과 라이브러리의 pom 파일을 비교해보아도 특별히 다른 점은 보이지 않습니다. dependency 관련은 애당초 NMS를 paperweight userdev 플러그인으로 처리해야 해서 정상인지 아닌지 확인할 수 없습니다.
gradle publishToMavenLocal 명령어로 로컬에 만들어본 파일 역시 별다른 이상점은 찾지 못했습니다.
PS. Invalidate Cache는 해도 별 소용이 없더군요.
qsef1256
2022.10.02packaging pom 이 부분이 맞나요? 제가 찾아본 바로는 이건 부모 프로젝트에만 있어야 하고 하위 프로젝트는 jar나 war등 최종 아티팩트로 되어 있는 것 같던데요.
https://maven.apache.org/ref/3.8.6/maven-core/default-bindings.html#Plugin_bindings_for_pom_packaging
Maven Docs에 따르면 pom 으로 선언된 프로젝트는 컴파일을 안하고 install deploy가 끝이라고 하네요, 이게 문제일 수 있다고 생각이 들어서요
SN1
2022.10.02뭔가 좀 애매하네요. 이 프로젝트는 multi-module project이기도 해서 pom을 쓰는 것이 맞는 것 같기도 하고...
https://www.baeldung.com/maven-packaging-types
일단 해당 부분을 바꿀 수 있는지 알아보겠습니다.