如何在Eclipse中为Gradle依赖项附加Javadoc?

时间:2015-05-07 17:52:32

标签: eclipse gradle

My Gradle项目正在从文件中提取一些jar依赖项:

dependencies {
    compile fileTree(dir: 'lib', include: '*.jar')
}

我已经将其中一个依赖项的Javadocs下载为zip文件,如何在Eclipse中添加Javadoc?

当我右键单击Gradle依赖项并尝试添加Javadoc时,我看到了:

  

当前的类路径条目属于容器' Gradle Dependencies(持久化)'它不允许用户修改其条目上的Javadoc位置。

2 个答案:

答案 0 :(得分:1)

您必须通过eclipse关闭添加javadoc zip。可以使用以下代码

来实现
eclipse {
    classpath {
        file {
            whenMerged { cp ->
                // Add sources to a classpath entry
                def fileReferenceFactory = new org.gradle.plugins.ide.eclipse.model.internal.FileReferenceFactory()

                def entry = cp.entries.find{ entry -> entry.path.endsWith('$YOUR_JAR.jar') }
                // add javadoc jar
                entry.javadocPath = fileReferenceFactory.fromPath(file('$JAVADOC_FOLDER/$JAVADOC_FILE.zip'))
            }
        }
    }
}

顺便说一下。我建议添加一个*-sources.jar,因为如果可能的话,这也会使javadoc提示可用。这可以使用上面的代码和

来完成
// add sources jar
entry.sourcePath = fileReferenceFactory.fromPath(file('$SOURCES_FOLDER/$SOURCE_FILE.jar')

而不是entry.javadocPath

答案 1 :(得分:1)

文件jar可能有点复杂。但是如果你能够从repo获得依赖,那么这就是要走的路:

repositories {
  mavenCentral()
}

dependencies {
  compile 'javax.servlet:javax.servlet-api:3.1.0'
}

eclipse.classpath.downloadJavadoc = true
eclipse.classpath.downloadSources = false

我做gradle cleanEclipse eclipse后,我在.classpath中得到类似内容:

<classpathentry kind="lib" path="C:/.../javax.servlet-api-3.1.0.jar">
  <attributes>
    <attribute name="javadoc_location" value="jar:file:/C:/.../javax.servlet-api-3.1.0-javadoc.jar!/"/>
    <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
  </attributes>
</classpathentry>