programing tip

gradle로 소스 jar을 빌드하는 방법

itbloger 2020. 6. 20. 10:35
반응형

gradle로 소스 jar을 빌드하는 방법


gradle로 빌드 된 오픈 소스 프로젝트로 작업하고 있습니다. IDE (IntelliJ IDEA)에로드하고 프로젝트를 통해 디버깅 할 수있는 (프로젝트) -sources.jar 파일을 생성하고 싶습니다. 파일을 생성 할 수 있으면로드하는 방법을 알고 있습니다.

프로젝트에 사용 가능한 gradle 작업을 살펴 ​​보았고 소스 jar 파일을 생성하는 gradle 작업이 없습니다.

이 프로젝트의 소스 jar 파일을 생성하는 가장 쉬운 방법은 무엇입니까?

컴파일 된 클래스 파일을 포함하는 jar 파일에 소스를 추가하는 것도 좋습니다.


task sourcesJar(type: Jar, dependsOn: classes) {
    classifier = 'sources'
    from sourceSets.main.allSource
}

task javadocJar(type: Jar, dependsOn: javadoc) {
    classifier = 'javadoc'
    from javadoc.destinationDir
}

artifacts {
    archives sourcesJar
    archives javadocJar
}

Android를 사용하는 경우 :

task sourcesJar(type: Jar) {
    from android.sourceSets.main.java.srcDirs
    classifier = 'sources'
}

task javadoc(type: Javadoc) {
    source = android.sourceSets.main.java.srcDirs
    classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}

task javadocJar(type: Jar, dependsOn: javadoc) {
    classifier = 'javadoc'
    from javadoc.destinationDir
}

artifacts {
    archives javadocJar
    archives sourcesJar
}

에서 여기


컴파일 된 클래스 JAR 파일에 소스추가 하려는 경우 에도이를 충분히 수행 할 수 있습니다. 빌드 파일에 다음을 추가하십시오. 이론적으로 소스를 별도의 JAR에 넣는 솔루션과 매우 비슷하다는 것을 알 수 있습니다.

 jar {
     from sourceSets.main.allSource
 }

차이점은 sourcesJar 대신 "jar"라고 말하여 기본 JAR 파일에 추가한다는 것입니다.


이 작동합니다

assemble.dependsOn 'propertyJar'

task propertyJar(type: Jar) {
 archiveName = "myJarName.jar"
 from('src/main/resources') {
    include '**'
 }}

Kotlin DSL은 다음과 같습니다.

tasks {

    val sourcesJar by creating(Jar::class) {
        dependsOn(JavaPlugin.CLASSES_TASK_NAME)
        classifier = "sources"
        from(java.sourceSets["main"].allSource)
    }

    val javadocJar by creating(Jar::class) {
        dependsOn(JavaPlugin.JAVADOC_TASK_NAME)
        classifier = "javadoc"
        from(java.docsDir)
    }

    artifacts {
        add("archives", sourcesJar)
        add("archives", javadocJar)
    }
}

참고 URL : https://stackoverflow.com/questions/11474729/how-to-build-sources-jar-with-gradle

반응형