1. 문제상황
crawler4j를 이용해 java crawler를 만들던 중
1) runtime에서는 정상 작동
2) compile할 때 dependency 에러 발생
* 사용한 crawler4j 버전
<!-- https://mvnrepository.com/artifact/edu.uci.ics/crawler4j -->
<dependency>
<groupId>edu.uci.ics</groupId>
<artifactId>crawler4j</artifactId>
<version>4.3</version>
</dependency>
* 에러 로그
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.890 s
[INFO] Finished at: 2022-02-12T01:03:08+09:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project www: Could not resolve dependencies for project com.subbak2:www:jar:0.0.1-SNAPSHOT: Failed to collect dependencies at edu.uci.ics:crawler4j:jar:4.3 -> com.sleepycat:je:jar:5.0.84: Failed t
o read artifact descriptor for com.sleepycat:je:jar:5.0.84: Could not transfer artifact com.sleepycat:je:pom:5.0.84 from/to maven-default-http-blocker (http://0.0.0.0/): Blocked mirror for repositories: [oracleReleases (http://dow
nload.oracle.com/maven, default, releases+snapshots)] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
2. 에러 로그 분석
1) crawler4j 의 dependency 중 하나인 com.sleepycat:je를 찾지 못했다.
Failed to collect dependencies at edu.uci.ics:crawler4j:jar:4.3 -> com.sleepycat:je:jar:5.0.84 |
2) 이 때 찾지 못한 repository의 주소는 아래 주소이다.
Blocked mirror for repositories: [oracleReleases (http://download.oracle.com/maven |
3. 조치
1) 프로젝트의 pom.xml에 에러 원인인 com.sleepycat:je를 명시해봤다.
<!-- https://mvnrepository.com/artifact/com.sleepycat/je -->
<dependency>
<groupId>com.sleepycat</groupId>
<artifactId>je</artifactId>
<version>5.0.84</version>
</dependency>
출처 : https://mvnrepository.com/artifact/com.sleepycat/je/5.0.84
→ 정상적으로 .m2 폴더에 library가 저장됐다.
→ mvnrepository에는 정상적으로 jar 파일이 있고,
crawler4j에서 설정한 repository인 download.oracle.com에
해당 library가 없다 (시간이 지나 버전이 관리가 안되는 등의 이유로 추정)
2) crawler4j library의 pom에서 의존성 확인, 경로 수정.
- 먼저 .m2\repository\edu\uci\ics\crawler4j\4.3\crawler4j-4.3.pom 에는 의존하는 모든 library의 repository를
download.oracle.com으로 명시하고 있었다.
<repositories>
<repository>
<id>oracleReleases</id>
<name>Oracle Released Java Packages</name>
<url>http://download.oracle.com/maven</url>
<layout>default</layout>
</repository>
</repositories>
- sleepycat.je를 제외한 라이브러리는 정상작동할 수 있으므로,
해당 라이브러리만 임의로 경로를 지정해 아래와 같이 수정해주었다.
--1. .m2\repository\edu\uci\ics\crawler4j\4.3\crawler4j-4.3.pom 수정
<dependency>
<groupId>com.sleepycat</groupId>
<artifactId>je</artifactId>
<version>${je.version}</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/je-5.0.84.jar</systemPath>
</dependency>
--2. .m2에 있는 je-5.0.84.jar를 위에 명시한 systemPath로 이동
-- 1) .m2\repository\com\sleepycat\je\5.0.84\je-5.0.84.jar 를 복사해서
-- 2) spring boot 프로젝트의 /src/main/resources 에 넣어줬다.
빌드 완료
반응형
'아키텍처 Architecture > Troubleshooting 트러블슈팅' 카테고리의 다른 글
JMeter 성능 부하테스트 기본 사용법 1) + Cache 부족 해결 (0) | 2020.11.10 |
---|---|
Spring security 설정으로 인한 401 Unauthorized 에러 (0) | 2020.07.09 |