| API Documentation: | GenerateIdeaModule |
|---|
Generates an IDEA module file.
Example how to use scopes property to enable 'provided' dependencies in the output *.iml file:
apply plugin: 'java'
apply plugin: 'idea'
configurations {
provided
provided.extendsFrom(compile)
}
dependencies {
//provided "some.interesting:dependency:1.0"
}
ideaModule {
scopes.PROVIDED.plus += configurations.provided
}| Property | Description |
downloadJavadoc | Whether to download and add javadoc associated with the dependency jars. |
downloadSources | Whether to download and add sources associated with the dependency jars. |
excludeDirs | The directories to be excluded. |
inheritOutputDirs | If true, output directories for this module will be located below the output directory for the project; otherwise, they will be set to the directories specified by #outputDir and #testOutputDir. |
inputFile | The input file to load the initial configuration from. Defaults to the output file. If the specified input file does not exist, this task uses some default initial configuration. |
javaVersion | The JDK to use for this module. If |
moduleDir | The content root directory of the module. |
moduleName | Configures module name. It's optional because the task should configure it correctly for you. By default it will try to use the project.name or prefix it with a part of a project.path to make sure the moduleName is unique in the scope of a multi-module build. The 'uniqeness' of a module name is required for correct import into IntelliJ IDEA and the task will make sure the name is unique. See example below... |
outputDir | The output directory for production classes. If |
outputFile | Configures output *.iml file. It's optional because the task should configure it correctly for you (including making sure it is unique in the multi-module build). If you really need to change the output file name it is much easier to do it via the moduleName property. |
scopes | The keys of this map are the IDEA scopes. Each key points to another map that has two keys, plus and minus.
The values of those keys are collections of |
sourceDirs | The directories containing the production sources. |
testOutputDir | The output directory for test classes. If |
testSourceDirs | The directories containing the test sources. |
variables | The variables to be used for replacing absolute paths in the iml entries. For example, you might add a
|
Whether to download and add javadoc associated with the dependency jars.
- Default with
ideaplugin: false
Whether to download and add sources associated with the dependency jars.
- Default with
ideaplugin: true
The directories to be excluded.
- Default with
ideaplugin: [project.buildDir, project.file('.gradle')]
Boolean inheritOutputDirs
If true, output directories for this module will be located below the output directory for the project; otherwise, they will be set to the directories specified by #outputDir and #testOutputDir.
- Default with
ideaplugin: null- Default with
ideaandjavaplugin: null
File inputFile
The input file to load the initial configuration from. Defaults to the output file. If the specified input file does not exist, this task uses some default initial configuration.
String javaVersion
The JDK to use for this module. If null, the value of the existing or default ipr XML (inherited)
is used. If it is set to inherited, the project SDK is used. Otherwise the SDK for the corresponding
value of java version is used for this module
- Default with
ideaplugin: 'inherited'
String moduleName
Configures module name. It's optional because the task should configure it correctly for you. By default it will try to use the project.name or prefix it with a part of a project.path to make sure the moduleName is unique in the scope of a multi-module build. The 'uniqeness' of a module name is required for correct import into IntelliJ IDEA and the task will make sure the name is unique. See example below...
moduleName is a synthethic property that actually modifies the outputFile property value. This means that you should not configure both moduleName and outputFile at the same time. moduleName is recommended.
However, in case you really need to override the default moduleName this is the way to go:
apply plugin: 'idea'
ideaModule {
moduleName = 'some-important-project'
}since 1.0-milestone-2
- Default with
ideaplugin: ${project.name}(sometimes prefixed with parts of${project.path}to guarantee uniqeness)
File outputDir
The output directory for production classes. If null, no entry will be created.
- Default with
ideaplugin: null- Default with
ideaandjavaplugin: null
File outputFile
Configures output *.iml file. It's optional because the task should configure it correctly for you (including making sure it is unique in the multi-module build). If you really need to change the output file name it is much easier to do it via the moduleName property.
Please refer to documentation on moduleName property. In IntelliJ IDEA the module name is the same as the name of the *.iml file.
- Default with
ideaplugin: (sometimes the${project.projectDir}/${project.name}.imlproject.nameis prefixed with parts of${project.path}to guarantee uniqeness). Bear in mind that usually it is easier to use moduleName property instead of outputFile property.
Map<String, Map<String, Collection<Configuration>>> scopes
Map<String, Map<String, Collection<Configuration>>>The keys of this map are the IDEA scopes. Each key points to another map that has two keys, plus and minus.
The values of those keys are collections of Configuration objects. The files of the
plus configurations are added minus the files from the minus configurations. See example below...
Example how to use scopes property to enable 'provided' dependencies in the output *.iml file:
apply plugin: 'java'
apply plugin: 'idea'
configurations {
provided
provided.extendsFrom(compile)
}
dependencies {
//provided "some.interesting:dependency:1.0"
}
ideaModule {
scopes.PROVIDED.plus += configurations.provided
}- Default with
ideaplugin: [:]- Default with
ideaandjavaplugin: -
COMPILE->project.configurations.compileRUNTIME->project.configurations.runtime - project.configurations.compileTEST->project.configurations.testRuntime - project.configurations.runtime
The directories containing the production sources.
- Default with
ideaplugin: []- Default with
ideaandjavaplugin: - source dirs from
project.sourceSets.main.allSource
File testOutputDir
The output directory for test classes. If null, no entry will be created.
- Default with
ideaplugin: null- Default with
ideaandjavaplugin: null
The directories containing the test sources.
- Default with
ideaplugin: []- Default with
ideaandjavaplugin: - source dirs from
project.sourceSets.test.allSource
| Method | Description |
beforeConfigured(closure) | Adds a closure to be called before the domain object is configured by this task. The domain object is passed as a parameter to the closure. |
beforeConfigured(action) | Adds an action to be called before the domain object is configured by this task. The domain object is passed as a parameter to the action. |
whenConfigured(closure) | Adds a closure to be called after the domain object has been configured by this task. The domain object is passed as a parameter to the closure. |
whenConfigured(action) | Adds an action to be called after the domain object has been configured by this task. The domain object is passed as a parameter to the action. |
withXml(closure) | Adds a closure to be called when the XML document has been created. The XML is passed to the closure as a
parameter in form of a |
withXml(action) | Adds an action to be called when the XML document has been created. The XML is passed to the action as a
parameter in form of a |
void beforeConfigured(Closure closure)
Adds a closure to be called before the domain object is configured by this task. The domain object is passed as a parameter to the closure.
The closure is executed after the domain object has been loaded from the input file. Using this method allows you to change the domain object in some way before the task configures it.
void beforeConfigured(Action<? super T> action)
Action<? super T>Adds an action to be called before the domain object is configured by this task. The domain object is passed as a parameter to the action.
The action is executed after the domain object has been loaded from the input file. Using this method allows you to change the domain object in some way before the task configures it.
void whenConfigured(Closure closure)
Adds a closure to be called after the domain object has been configured by this task. The domain object is passed as a parameter to the closure.
The closure is executed just before the domain object is written to the output file. Using this method allows you to override the configuration applied by this task.
void whenConfigured(Action<? super T> action)
Action<? super T>Adds an action to be called after the domain object has been configured by this task. The domain object is passed as a parameter to the action.
The action is executed just before the domain object is written to the output file. Using this method allows you to override the configuration applied by this task.
void withXml(Closure closure)
Adds a closure to be called when the XML document has been created. The XML is passed to the closure as a
parameter in form of a XmlProvider. The closure can modify the XML before
it is written to the output file.
void withXml(Action<? super XmlProvider> action)
Action<? super XmlProvider>Adds an action to be called when the XML document has been created. The XML is passed to the action as a
parameter in form of a XmlProvider. The action can modify the XML before
it is written to the output file.