如何在Gradle项目中使用IntelliJ IDEA生成一个包含javadoc的.jar?

如何在Gradle项目中使用IntelliJ IDEA生成一个包含javadoc的.jar?,java,intellij-idea,gradle,Java,Intellij Idea,Gradle,我正在使用IntelliJ IDEA用Java开发一个库,我也在项目中使用gradle。 我的问题是,当我构建项目的工件时,所构建的.jar文件不包含任何javadocs,接口中的方法参数名称也会丢失。如何在Gradle项目中使用IntelliJ IDEA生成一个也包含javadoc的.jar?这是预期的行为。但是有一个默认的“javadoc”任务,它将javadoc生成到“build/docs”目录中。所以你可以这样做: task sourcesJar(type: Jar, dependsOn

我正在使用IntelliJ IDEA用Java开发一个库,我也在项目中使用gradle。
我的问题是,当我构建项目的工件时,所构建的.jar文件不包含任何javadocs,接口中的方法参数名称也会丢失。如何在Gradle项目中使用IntelliJ IDEA生成一个也包含javadoc的.jar?

这是预期的行为。但是有一个默认的“javadoc”任务,它将javadoc生成到“build/docs”目录中。所以你可以这样做:

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
}
task makeJavadoc (type :Jar, dependsOn: javadoc){
    from docsDir
    classifier='docs'
    description='Creates a Javadoc Jar'
}

生成的javadoc必须手动附加。

虽然要添加到文件中的特定代码很有用,但对它的功能或确切添加位置的一些解释更有价值。您不需要。首先,更改编译选项以包含参数名。其次,为javadoc创建一个差异jar文件。如果代码是开源的,那么还应该为源代码创建第三个jar文件。标准命名是,如果主(代码)jar文件名为
mylib-1.0.jar
,那么其他两个文件名为
mylib-1.0-javadoc.jar
mylib-1.0-sources.jar
。向您展示如何在Gradle中实现这一点。