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.COMPILE.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 Intellij scopes. Each key points to another map that has two keys, plus and minus.
The values of those keys are sets 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
idea
plugin: false
Whether to download and add sources associated with the dependency jars.
- Default with
idea
plugin: true
The directories to be excluded.
- Default with
idea
plugin: [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
idea
plugin: null
- Default with
idea
andjava
plugin: 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
idea
plugin: '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
idea
plugin: ${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
idea
plugin: null
- Default with
idea
andjava
plugin: 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
idea
plugin:
(sometimes the${project.projectDir}
/${project.name}
.imlproject.name
is 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
, Configuration
>>
scopes
Map
<String
, Map
<String
, Configuration
>>The keys of this map are the Intellij scopes. Each key points to another map that has two keys, plus and minus.
The values of those keys are sets 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.COMPILE.plus += configurations.provided }
- Default with
idea
plugin: [:]
- Default with
idea
andjava
plugin: -
COMPILE
->project.configurations.compile
RUNTIME
->project.configurations.runtime - project.configurations.compile
TEST
->project.configurations.testRuntime - project.configurations.runtime
The directories containing the production sources.
- Default with
idea
plugin: []
- Default with
idea
andjava
plugin: - source dirs from
project.sourceSets.main.allSource
File
testOutputDir
The output directory for test classes. If null
, no entry will be created.
- Default with
idea
plugin: null
- Default with
idea
andjava
plugin: null
The directories containing the test sources.
- Default with
idea
plugin: []
- Default with
idea
andjava
plugin: - 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.