Gradle 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 idea
. For an existing build file, we can select the Refresh all Gradle projects icon from the Gradle view and IDEA will download missing Javadoc files for the dependencies in our project. In the project file we see for example the location of the Javadoc JAR files:
... <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> </classpathentry> ...
Written with Gradle 2.7.