Cloudera CDH/CDP 및 Hadoop EcoSystem, Semantic IoT등의 개발/운영 기술을 정리합니다. gooper@gooper.com로 문의 주세요.
sbt [SBT] assembly시 "[error] deduplicate: different file contents found in the following:"오류 발생시 조치사항
1. assembly에 전체 jar를 포함하지 않도록 하는 경우
가. 메세지 내용
[error] deduplicate: different file contents found in the following:
[error]
C:Usersgooper.ivy2cacheorg.springframeworkspring-webjarsspring-web-4.0.5.RELEASE.jar:org/springframework/web/multipart/support/DefaultMultipartHttpServletRequest.class
[error] C:Usersgooper.ivy2cacheorg.springframeworkspring-webmvcjarsspring-webmvc-2.5.4.jar:org/springframework/web/multipart/support/DefaultMultipartHttpServletRequest.class
나. 조치사항
: libraryDependencies에서 "provided"를 지정해서 assembly에 포함되지 않도록 함
"org.springframework" % "spring-web" % "4.0.5.RELEASE" % "provided" ,
"org.springframework" % "spring-webmvc" % "4.0.5.RELEASE" % "provided",
2. provided를 지정해서 assembly에서 제외할 수는 없고 일부 jar파일만 제외해야 하는 상황
가. 메세지 내용
java.lang.RuntimeException: deduplicate: different file contents found in the following:
C:Usersgooper.ivy2cachestaxstax-apijarsstax-api-1.0.1.jar:javax/xml/XMLConstants.class
C:Usersgooper.ivy2cachexml-apisxml-apisjarsxml-apis-1.4.01.jar:javax/xml/XMLConstants.class
deduplicate: different file contents found in the following:
C:Usersgooper.ivy2cachestaxstax-apijarsstax-api-1.0.1.jar:javax/xml/namespace/NamespaceContext.class
C:Usersgooper.ivy2cachexml-apisxml-apisjarsxml-apis-1.4.01.jar:javax/xml/namespace/NamespaceContext.class
deduplicate: different file contents found in the following:
C:Usersgooper.ivy2cachestaxstax-apijarsstax-api-1.0.1.jar:javax/xml/namespace/QName.class
C:Usersgooper.ivy2cachexml-apisxml-apisjarsxml-apis-1.4.01.jar:javax/xml/namespace/QName.class
....
나. 조치사항
: 포함되는 jar를 찾아서 exclude를 지정한다.
libraryDependencies에서 ("org.apache.jena" % "jena-core" % "3.1.0").exclude("stax", "stax-apis").exclude("xml-apis", "xml-apis")를 지정해준다.
*참고 : https://mvnrepository.com에서 "stax-api"를 검색하며 해당 jar의 groupId와 artifactId를 확인해서
exclude(groupId, artifactId)를 지정해주면된다.
*어떤 jar가 문제되는 jar를 포함하고 있는지 확인하기가 힘든데.. provided로 지정되지 않은 jar에 exclude를 지정해서 "sbt assembly"를
수행해서 정상적으로 assembly되는 케이스를 반복해서 찾아야함.
댓글 0
번호 | 제목 | 날짜 | 조회 수 |
---|---|---|---|
15 | 다중 모듈 프로젝트 설정에 대한 설명 | 2016.09.21 | 2851 |
14 | git 초기화(Windows에서 Git Bash사용) | 2016.11.17 | 4391 |
13 | 특정 단계의 commit상태로 만들기(이렇게 하면 중간에 반영된 모든 commit를 history가 삭제된다) | 2016.11.17 | 3392 |
12 | Github를 이용하는 전체 흐름 이해하기 | 2016.11.18 | 2642 |
11 | 특정 커밋 시점(commit id를 기준으로)으로 돌리기(reset) | 2016.11.21 | 3733 |
10 | .gitignore파일에 지정되지 않은 파일이 ignore되는 경우 확인방법 | 2016.11.22 | 4424 |
9 | github에 있는 프로젝트와 로컬에서 작업한 프로젝트 합치기 | 2016.11.22 | 3298 |
8 |
원격의 origin/master를 기준으로 dev branch를 만들어 작업후 원격의 origin/dev에 push하는 방법
![]() | 2016.11.22 | 4128 |
7 | Java 8에서 pom.xml에 JavaDoc 관련 태그가 설정되어 있으나 오류등으로 실패하면 나머지 Maven작업이 종료되는 문제 해결 방법 | 2017.01.24 | 3292 |
6 |
Eclipse 에서 bitbucket.org 연동 하기
![]() | 2017.06.08 | 3894 |
5 | .git폴더를 삭제하고 다시 git에 추가하고 서버에 반영하는 방법 | 2017.06.19 | 8638 |
4 | 원격 리포지토리에서 최초 clone시 Permission denied (publickey). 오류발생시 조치사항 | 2017.06.20 | 4517 |
3 | ubuntu에 maven 3.6.1설치 및 환경변수 설정 | 2019.06.02 | 4157 |
2 | 원격에 있는 git를 받은후 기존repository삭제후 새로운 리포지토리에 연결하여 소스 등록 | 2019.07.13 | 4379 |
1 | [bitbucket] 2022년 3월 2일 부터 git 작업시 기존에 사용하던 비빌번호를 사용할 수 없도록 변경되었다. | 2022.04.30 | 4243 |