2014-02-18 1 views
1

eclipse.inf 파일이 두 번 발견 될 수 있기 때문에 Scala와 EclipseLink JPA로 프로젝트에 sbt 및 sbt 어셈블리 플러그인을 사용하여 fat jar를 만들려고했지만 어셈블리 명령이 실패했습니다. 나는 SBT 어셈블리 플러그인에서 mergeStrategy으로 문제를 해결하려고sbt 및 sbt-assembly로 fat jar를 작성하여 eclipselink에 대한 종속성을 해결 하시겠습니까?

import AssemblyKeys._ 

name := "TelegramReceiver" 

version := "0.1" 

scalaVersion := "2.10.3" 

retrieveManaged in ThisBuild := true 

libraryDependencies ++= Seq(
    "org.scalatest" % "scalatest_2.10" % "2.0" % "test", 
    "org.eclipse.persistence" % "eclipselink" % "2.5.1" 
) 

,하지만 작동하지 않습니다 같은

> assembly 
[info] Including from cache: commonj.sdo-2.1.1.jar 
[info] Including from cache: javax.persistence-2.1.0.jar 
[info] Including from cache: scala-library.jar 
[info] Including from cache: eclipselink-2.5.1.jar 
[info] Run completed in 38 milliseconds. 
[info] Checking every *.class/*.jar file's SHA-1. 
[info] Merging files... 
[warn] Merging 'org\eclipse\persistence\descriptors\copying' with strategy 'rename' 
[warn] Merging 'META-INF\MANIFEST.MF' with strategy 'discard' 
[trace] Stack trace suppressed: run last *:assembly for the full output. 
[error] (*:assembly) deduplicate: different file contents found in the following: 
[error] C:\Users\u987\WebApps\gr\lib_managed\jars\org.eclipse.persistence\javax.persistence\jav ax.persistence-2.1.0.jar:META-INF/eclipse.inf 
[error] C:\Users\u987\WebApps\gr\lib_managed\jars\org.eclipse.persistence\commonj.sdo\commonj.sdo-2.1.1.jar:META-INF/eclipse.inf 

내 build.sbt 보인다. 나는 0.13.1의 SBT를 사용한다.

미리 도움을 청하십시오!

+0

병합 전략 및 원하는 결과의 예를 제공 할 수 있습니까? 당신은 정확히 같은 내용으로'eclipse.inf'를 가지고 있습니까? –

답변

2

이 같은 설정에 사용자 정의 병합 전략을 추가 할 수 있습니다

mergeStrategy in assembly <<= (mergeStrategy in assembly) { (old) => 
    { 
    case PathList("eclipse.inf") => MergeStrategy.rename // use any of the available strategies like `first` 
    case x => old(x) 
    }} 

은 자세한 내용은 this doc를 참조하십시오.

+0

빠른 답변을 보내 주셔서 감사합니다. 나는 이것을 시도한다 : Case PathList ("eclipse.inf") => MergeStrategy.first 그러나 같은 오류가 발생한다. PathList의 내용에 파일 이름이 있는지 확실하지 않습니다. – Twistleton

+1

파일이 jar :'case "의 루트에 있지 않습니다. META-INF/eclipse.inf"'아니면'case PathList ("META-INF", "eclipse.inf")'가 더 잘 작동해야합니다. – gourlaysama

+0

대단히 감사합니다, Aleksey Izmailov 및 gourlaysama - 당신은 내 하루를 구하십시오. – Twistleton

관련 문제