2013-12-18 4 views
1

Android 프로젝트에서 Newman, StackMob’s Http Client 라이브러리를 사용해야합니다.Newman, StackMob의 Http 클라이언트 라이브러리에 sbt-assembly 사용

모든 종속성을 가진 하나의 단일 (uber) jar를 생성하려면 sbt-assembly을 사용합니다. 이 명령은 나에게 매우 큰 항아리 파일 (48MB)을주고 Android는 그것을 덱스로 변환 할 수 없다.

내 JAR 라이브러리에 필요한 종속성을 어떻게 추가 할 수 있습니까?

답변

1

나는 전체 섹션을 excluding JARs and files에 sbt 어셈블리의 README에 기록했습니다.

당신이 말할 때 :

어떻게 내가 내 항아리 라이브러리에만 필요한 종속성을 추가 할 수 있습니까?

sbt-assembly의 컨텍스트에서 "종속성"이란 단어는 일반적으로 종속 항아리를 의미합니다. 문제는 항아리 수준에 있습니다. 모두 필요합니다. 당신이해야 할 일은 사용되지 않는 파일 들인 *.class을 찾아서 최종 뚱뚱한 병에서 제외시키는 것입니다. sbt-assembly에는 파일을 무시하는 데 사용할 수있는 병합 전략이 있습니다.

그러나 Android 개발의 경우 제외 할 파일이 너무 많아서 분석을 자동으로 수행해야합니다. 그것이 ProGuard이 들어있는 곳입니다. 결과 jar가 훨씬 작아집니다. 그러나 그것은 또한 약간의 부두교입니다. 왜냐하면 여러분이 확실한 수업이 필요한지 아닌지 알 수 없기 때문입니다. 아직 시도하지 않았다면 pfn/android-sdk-plugin을 시도하십시오. ProGuard 결과를 캐시하여 훨씬 빠르게 만듭니다.

+0

답장을 보내시겠습니까 한 가지 더 많은 문제는 sbt 어셈블리를 사용하여 내 종속 항아리에 모든 종속성과 하나의 스칼라 라이브러리를 추가하는 것입니다. 예를 들어 스칼라를 항아리에 추가하는 것을 제외해야합니다. 아무도 나를 어떻게 도와 줄 수 있는지 설명 할 수 없다. – iCaesar

+0

우리의 뚱뚱한 항아리에서 스칼라 리브를 제외하면 나쁜 결과가 나옵니다. 그래서 이제는 ProGuard를 설정하고 사용하려고합니다. – iCaesar