My Gradle项目正在从文件中提取一些jar依赖项:
dependencies {
compile fileTree(dir: 'lib', include: '*.jar')
}
我已经将其中一个依赖项的Javadocs下载为zip文件,如何在Eclipse中添加Javadoc?
当我右键单击Gradle依赖项并尝试添加Javadoc时,我看到了:
当前的类路径条目属于容器' Gradle Dependencies(持久化)'它不允许用户修改其条目上的Javadoc位置。
答案 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>