如何建立与gradle这个罐子来源(How to build sources jar with gr

2019-06-17 10:32发布

我有一个内建gradle这个开源项目工作。 我想产生一个(项目)-sources.jar文件,我可以加载到我的IDE(IntelliJ IDEA的)并调试通过的项目。 我知道如何加载该文件,如果我可以生成它。

我已经通过了项目的可gradle产出任务看上去并没有一个生成源jar文件。

什么是产生这个项目来源jar文件的最简单的方法?

添加源到包含编译的类文件将被罚款以及jar文件。

Answer 1:

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
}


Answer 2:

如果您使用的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
}

从这里



Answer 3:

如果您希望将源添加到已编译的类JAR文件 ,你也说是可以接受的,你能做到这一点很容易不够。 只需以下添加到您的构建文件。 你可以看到,从理论上讲,这是很像把源到一个单独的JAR的解决方案:

 jar {
     from sourceSets.main.allSource
 }

不同的是,你被代替sourcesJar的说:“罐子”将它添加到主JAR文件。



Answer 4:

这应该工作

assemble.dependsOn 'propertyJar'

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


Answer 5:

在科特林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)
    }
}


文章来源: How to build sources jar with gradle
标签: java jar gradle