Gradle Goodness: Download Javadoc Files For Dependencies In IDE
By default, sources of a dependency are downloaded and added to a project, but not Javadoc sources. Gradle can use IntelliJ IDEA and Eclipse project files to download them.
Join the DZone community and get the full member experience.
Join For FreeGradle has an idea
and eclipse
plugin that we can use to configure IntelliJ IDEA and Eclipse project files. When we apply these plugins to our project we get extra tasks to generate and change project files. Inside our Gradle build file we get new configuration blocks to specify properties or invoke methods that will change the configuration files. One of the nice things to add is to let the IDE download Javadoc files for dependencies in our Java/Groovy projects. By default the sources for a dependency are already downloaded and added to the project, but Javadoc files are not downloaded.
In the example build file we use the idea
and eclipse
plugins. We also add an idea
and eclipse
configuration block. The place where we need to set the property downloadJavadoc
is a bit different, but the end result will be the same.
// File: build.gradle
apply {
plugin 'java'
plugin 'idea'
plugin 'eclipse'
}
idea {
module {
downloadJavadoc = true
}
}
eclipse {
classpath {
downloadJavadoc = true
}
}
repositories {
jcenter()
}
dependencies {
compile 'org.springframework:spring-context:4.2.1.RELEASE'
}
For example to create the correct files for IntelliJ IDEA we run the task:
<library name="Gradle: org.springframework:spring-beans:4.2.1.RELEASE">
<CLASSES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.springframework/spring-beans/4.2.1.RELEASE/6d39786b9f7b2a79897a0a83495f30002d9f8de3/spring-beans-4.2.1.RELEASE.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.springframework/spring-beans/4.2.1.RELEASE/d7789802c418cd04462f0e2f00cf812912bea33d/spring-beans-4.2.1.RELEASE-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.springframework/spring-beans/4.2.1.RELEASE/5d017016084ccea18af667cf65e2927800967452/spring-beans-4.2.1.RELEASE-sources.jar!/" />
</SOURCES>
</library>
When we run the eclipse
task all Eclipse project files are generated. If we look in the generated .classpath
file we see for example that the location for the Javadoc files is added:
<classpathentry sourcepath="/Users/mrhaki/.gradle/caches/modules-2/files-2.1/org.springframework/spring-context/4.2.1.RELEASE/676729ef55bb886663ed5454eb61d119ef712f17/spring-context-4.2.1.RELEASE-sources.jar" kind="lib" path="/Users/mrhaki/.gradle/caches/modules-2/files-2.1/org.springframework/spring-context/4.2.1.RELEASE/5bf6dec08e77755c2ec913fde1b8e29083e70a76/spring-context-4.2.1.RELEASE.jar">
<attributes>
<attribute name="javadoc_location" value="jar:file:/Users/mrhaki/.gradle/caches/modules-2/files-2.1/org.springframework/spring-context/4.2.1.RELEASE/8d9edd93ea9d918b0895eb6fd4d1c69b301de449/spring-context-4.2.1.RELEASE-javadoc.jar!/"/>
</attributes>
</classpath>
Published at DZone with permission of Mohammed Rahmatullah. See the original article here.
Opinions expressed by DZone contributors are their own.
Comments