gradle에서 jar에서 특정 패키지만 제거

6737 단어 Kotlingradle
gradle에서 외부 라이브러리 jar에서 특정 패키지와 클래스를 제거하는 방법 참고.

이번은 kotlin compiler 에서 com/intellij/** 부하의 패키지를 제거한 jar를 생성한다.



build.gradle

configurations {
    kotlinCompiler { transitive = false }
}

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
    kotlinCompiler ("org.jetbrains.kotlin:kotlin-compiler:$kotlin_version")
    compile files("$libsDir/tweaked-kotlin-compiler.jar")
}

task tweakKotlinCompiler(type: Jar) {
    from zipTree(configurations.kotlinCompiler.singleFile).matching {
        exclude "com/intellij/**"
    }
    destinationDir libsDir
    archiveName 'tweaked-kotlin-compiler.jar'
}

compileKotlin.dependsOn tweakKotlinCompiler
kotlin-compiler-1.2.10.jar zipTree에서 특정 패키지를 제외하고 새로운 jar를 생성합니다.



특정의 패키지만 취득하고 싶은 경우는, include 하면 가능.

전체

build.gradle
buildscript {
    ext.kotlin_version = '1.2.10'

    repositories {
        mavenCentral()
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

plugins {
    id 'org.jetbrains.intellij' version '0.2.18'
}

group 'com.github.bassaer'
version '0.0.1'

apply plugin: 'kotlin'

repositories {
    mavenCentral()
}

configurations {
    kotlinCompiler { transitive = false }
}

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
    kotlinCompiler ("org.jetbrains.kotlin:kotlin-compiler:$kotlin_version")
    compile files("$libsDir/tweaked-kotlin-compiler.jar")
}

task tweakKotlinCompiler(type: Jar) {
    from zipTree(configurations.kotlinCompiler.singleFile).matching {
        exclude "com/intellij/**"
    }
    destinationDir libsDir
    archiveName 'tweaked-kotlin-compiler.jar'
}


compileKotlin() {
    kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
    kotlinOptions.jvmTarget = "1.8"
}
intellij {
    version '2017.3.3'
}
patchPluginXml {
    changeNotes """
      Add change notes here.<br>
      <em>most HTML tags may be used</em>"""
}

compileKotlin.dependsOn tweakKotlinCompiler

좋은 웹페이지 즐겨찾기