마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 스튜디오 jar 배포방법일

0 추천

아래는 현재 사용하고 있는 gradle 설정환경입니다.
./gradlew makrJar 명령어를 통해서 sand.jar 파일 생성하고 있습니다.

문제는 배포한 jar 파일(sand.jar) 을 보면 클래스 파일 이외에 layout/, drawable-xxx/, values/ 폴더들까지 모두 포함되어있는데 이런 폴더들을 제거하고 순수하게 클래스 파일들만 모아서 배포하고 싶습니다.
exclude 를 사용해서 테스트 해봤는데 잘 안되네요. 아시는 분 답변 부탁드립니다.

sand.jar 파일을 열어보면 클래스 파일 이외에 아래와 같은 resource 관련 파일들이 보이고
이 리소스 파일들은 제거해서 jar 파일을 만들고 싶은겁니다.

layout/
layout/main.xml
drawable-mdpi/
drawable-mdpi/ic_launcher.png
values/
values/strings.xml
drawable-ldpi/
drawable-ldpi/ic_launcher.png
drawable-hdpi/
drawable-hdpi/ic_launcher.png

 

 

gradle 설정파일

//apply plugin: 'com.android.application'
//apply plugin: 'android'
apply plugin: 'com.android.library'

buildscript {
    repositories {
        mavenCentral()
    }
}

repositories {
    mavenCentral()
}

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
//        applicationId "apat.junit"
        minSdkVersion 17
        targetSdkVersion 21
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
    productFlavors {
    }

    sourceSets {
        main {
            java {
                srcDir 'src/main/java'
            }
        }
    }
}

task clearJar(type: Delete) {
    delete 'build/outputs/sand.jar'
}

task makeJar(type: Copy) {
    from('build/intermediates/bundles/release/')
    into('build/outputs/')
    include('classes.jar')
    rename ('classes.jar', 'sand.jar')
}

makeJar.dependsOn(clearJar, build)

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.google.code.gson:gson:2.1'
}
캬누문 (180 포인트) 님이 2015년 10월 6일 질문

1개의 답변

0 추천
해당 프로젝트가 위 리소스를 사용하지 않는다면 그냥 프로젝트에서 삭제하세요.

리소스를 사용한다면, 리소스를 빼고 배포하면 라이브러리를 사용하는 쪽에서 오류가 발생할 겁니다.
익명사용자 님이 2015년 10월 6일 답변
라이브러리를 사용하는 쪽에서 리소스가 필요없기 때문에 리소스만 제거하고 클래스 파일들만 묶어서 jar로 배포하고 싶습니다. 프로젝트에서 리소르를 제거하면 되기는 하는데 그 보다 gradle makeJar 에서 리소스를 제거할 수 있는 방안은 없을까요?
...