我正在使用一个用gradle构建的开源项目.我想生成一个(项目)-sources.jar文件,我可以将其加载到我的IDE(IntelliJ IDEA)并通过项目进行调试.如果我可以生成它,我知道如何加载文件.
我查看了项目的可用gradle任务,但没有一个生成源jar文件.
为此项目生成源jar文件的最简单方法是什么?
将源添加到包含已编译类文件的jar文件中也可以.
JB *_*zet 232
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
}
Run Code Online (Sandbox Code Playgroud)
Gio*_*ano 49
如果您使用的是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
}
Run Code Online (Sandbox Code Playgroud)
从这里开始
Chr*_*iki 48
假设您在Gradle 6.0 或更高版本中使用java
/java-library
插件,您可以sourcesJar
使用以下配置获取任务:
java {
withSourcesJar()
// and/or analogously use “withJavadocJar()” to get a “javadocJar” task
}
Run Code Online (Sandbox Code Playgroud)
如果您另外使用maven-publish
/ivy-publish
插件(现在推荐),那么这也将*-sources.jar
与您的主要 Java 出版物一起发布工件。
另请参阅Gradle 文档。
Mic*_*ryl 33
如果您希望将源添加到已编译的类JAR文件中,您也说这是可以接受的,您可以轻松地完成此操作.只需将以下内容添加到构建文件中即可.您可以看到,从理论上讲,它非常类似于将源放入单独的JAR的解决方案:
jar {
from sourceSets.main.allSource
}
Run Code Online (Sandbox Code Playgroud)
不同之处在于您通过使用"jar"代替sourcesJar将其添加到主JAR文件中.
这应该工作
assemble.dependsOn 'propertyJar'
task propertyJar(type: Jar) {
archiveName = "myJarName.jar"
from('src/main/resources') {
include '**'
}}
Run Code Online (Sandbox Code Playgroud)
小智 8
使用时:
java
和maven-publish
插件task sourceJar(type: Jar) {
from sourceSets.main.allJava
archiveClassifier = "sources"
}
publishing {
publications {
maven(MavenPublication) {
from components.java
artifact sourceJar
}
}
}
Run Code Online (Sandbox Code Playgroud)
https://docs.gradle.org/current/dsl/org.gradle.api.publish.maven.MavenPublication.html
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)
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
68252 次 |
最近记录: |