我有一个内建gradle这个开源项目工作。 我想产生一个(项目)-sources.jar文件,我可以加载到我的IDE(IntelliJ IDEA的)并调试通过的项目。 我知道如何加载该文件,如果我可以生成它。
我已经通过了项目的可gradle产出任务看上去并没有一个生成源jar文件。
什么是产生这个项目来源jar文件的最简单的方法?
添加源到包含编译的类文件将被罚款以及jar文件。
我有一个内建gradle这个开源项目工作。 我想产生一个(项目)-sources.jar文件,我可以加载到我的IDE(IntelliJ IDEA的)并调试通过的项目。 我知道如何加载该文件,如果我可以生成它。
我已经通过了项目的可gradle产出任务看上去并没有一个生成源jar文件。
什么是产生这个项目来源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文件。
这应该工作
assemble.dependsOn 'propertyJar'
task propertyJar(type: Jar) {
archiveName = "myJarName.jar"
from('src/main/resources') {
include '**'
}}
在科特林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)
}
}