如何使用IntelliJ将外部库的源和javadoc添加到gradle?

kru*_*uze 26 java javadoc intellij-idea gradle

我用IntelliJ和Gradle建立了一个Java项目.我的根项目中有一个build.gradle文件,我可以编译并运行我的应用程序.

但是......我正在使用一个带有源和javadoc zip文件的Java库.如果我在我的源代码中并想要从这个库中获取类或方法的声明,IntelliJ会调出.class文件而不是.javazip中提供的源文件.

如何告诉gradle使用随外部库提供的源和javadoc zip?

Mic*_*ael 10

你不需要告诉Gradle来源.这是IntelliJ.

文件 - >项目结构 - >模块 - >如果您有多个选择正确的模块 - >依赖项选项卡 - >单击底部附近的+号 - >选择Jars或目录 - >选择包含您的sources/javadocs的目录罐子.

IntelliJ将看到它们是javadoc并且对它们进行适当的索引和索引.

在此输入图像描述

  • 如果我刷新我的gradle项目或将其再次导入IntelliJ,则此方法的问题是IntelliJ会忘记此配置.我需要一种方法在build.gradle文件中声明这个,否则我总是需要手动添加源jar文件. (17认同)

Rob*_*hne 10

我不确定您的库是否存储在maven存储库中.我认为是.

我知道将gradle项目导入IntelliJ的两种方法.第一个是IntelliJ的"导入项目......"向导,效果很好.但如果它们存在,它不会导入javadoc jar.至少我从未管理过它.

第二种方法使用gradle 2.1中的idea插件.该插件为您生成项目.这样我就得到了javadoc.build.gradle的完整工作示例:

apply plugin: 'java'
apply plugin: 'idea'

sourceCompatibility = '1.7'
targetCompatibility = '1.7'

repositories {
    mavenCentral()
}

dependencies {
    compile group: 'org.apache.commons', name: 'commons-compress', version: '1.8.1'
    compile group: 'com.google.guava', name: 'guava', version: '18.0'

    testCompile group: 'junit', name: 'junit', version: '4.11'
    testCompile group: 'org.mockito', name: 'mockito-all', version: '1.8.5'
}

idea{
    project {
        languageLevel = '1.7'
    }
    module {
        downloadJavadoc = true // defaults to false
        downloadSources = true
    }
}
Run Code Online (Sandbox Code Playgroud)

您可以调用gradle cleanIdea idea哪个为IntelliJ创建项目.

如果您的库未存储在maven存储库中,您可以简单地在上载它的位置建立连接.这将允许您使用上述方法.