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
번호 | 제목 | 날짜 | 조회 수 |
---|---|---|---|
10 | spark submit용 jar파일을 만드는 sbt 용 build.sbt설정 파일(참고용) | 2016.08.19 | 708 |
9 | 여러가지 방법으로 특정 jar파일을 exclude하지 못하는 경우 해당 jar파일을 제외시키는 방법 | 2016.08.11 | 288 |
8 | 외부 jar파일을 만들려고하는jar파일의 package로 포함하는 방법 | 2016.08.10 | 176 |
» | [SBT] assembly시 "[error] deduplicate: different file contents found in the following:"오류 발생시 조치사항 | 2016.08.04 | 1085 |
6 | [SBT] SBT 사용법 정리(링크) | 2016.08.04 | 1037 |
5 | [SBT] project.sbt에 libraryDependencies에 필요한 jar를 지정했으나 sbt compile할때 클래스를 못찾는 오류가 발생했을때 조치사항 | 2016.08.03 | 1213 |
4 | build할때 unmappable character for encoding MS949 에러 발생시 조치사항 | 2016.08.03 | 911 |
3 | [sbt] sbt-assembly를 이용하여 실행에 필요한 모든 j라이브러리를 포함한 fat jar파일 만들기 | 2016.07.11 | 2142 |
2 | [sbt] sbt 0.13.11 를 windows에 설치하고 scala프로그램을 compile해서 jar파일 만들기 | 2016.07.11 | 678 |
1 | centos에 sbt 0.13.5 설치 | 2016.05.30 | 810 |