Android

[Android/Jar] AndroidStudio 에서 jar 파일 생성하기

Question영 2019. 12. 13. 16:12
반응형

build.gradle(app) 설정에 하기와 같이 설정해주면 됩니다.

 

요즘 대부분 3.1 이상 gradle 환경이기 때문에 3.1 이상 예제를 사용하시기 바랍니다.

 

3.1 미만 (참고)

 

// 기존 library.jar 파일을 삭제.
task deleteOldJar(type:Delete) { 
  delete 'release/library.jar'
} 

// release 폴더에 library 이름으로 jar 생성.
task exportJar(type:Copy) {
  from('build/intermediates/bundles/release/')
    into('release/') include('classes.jar')
    rename('classes.jar', 'library.jar')
}

// exportJar 실행시 deleteObjectJar가 실행되도록 설정
exportJar.dependsOn(deleteObjectJar, build)

 

3.1 이후 (권장)

 

// 기존 library.jar 파일을 삭제.
task deleteObjectJar(type: Delete){
    delete 'release/library.jar'
}

// release 폴더에 library 이름으로 jar 생성.
task exportJar(type: Copy){
    from('build/intermediates/packaged-classes/release/')
    into('release/')
    include('classes.jar')
    rename('classes.jar', 'library.jar')
}

// exportJar 실행시 deleteObjectJar가 실행되도록 설정
exportJar.dependsOn(deleteObjectJar, build)

 

사용하실 때 주의 점은 build.gradle 맨위 설정이 다음과 같은지 확인한 후 사용하세요.

 

apply plugin: 'com.android.library'

 

위의 설정이 되어 있어야 jar 파일을 생성할 수 있습니다.

 

전체 요약 코드 남겨 놓겠습니다.

 

apply plugin: 'com.android.library'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.test.library"
        minSdkVersion 15
        targetSdkVersion 28
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
 ...
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
...
}

// 기존 library.jar 파일을 삭제.
task deleteObjectJar(type: Delete){
    delete 'release/library.jar'
}

// release 폴더에 library 이름으로 jar 생성.
task exportJar(type: Copy){
    from('build/intermediates/packaged-classes/release/')
    into('release/')
    include('classes.jar')
    rename('classes.jar', 'library.jar')
}

// exportJar 실행시 deleteObjectJar가 실행되도록 설정
exportJar.dependsOn(deleteObjectJar, build)

 

참고하세요!

반응형