====== Gradle IntelliJ IDEA ======
* [[gradle:propdeps|propdeps plugin]]를 사용하지 않는 이상 ''idea'' 플러그인을 사용할 필요는 거의 없다. IntelliJ 자체의 Gradle 플러그인을 사용한다.
* [[https://github.com/JetBrains/gradle-idea-ext-plugin|gradle-idea-ext-plugin]] IntelliJ IDEA 부가 설정을 해줄 수 있는 플러그인.
* [[http://www.gradle.org/docs/current/userguide/idea_plugin.html|Gradle idea plugin]]
* [[http://www.gradle.org/docs/current/dsl/org.gradle.plugins.ide.idea.model.IdeaProject.html|IdeaProject]]
* [[https://github.com/rholder/gradle-view|Gradle View]] IntelliJ IDEA Gradle dependency view
* [[https://github.com/gradle-archive/gradle-intellij-gui/wiki|Gradle GUI]] Gradle 외부 명령으로 실행 Plugin
===== Example =====
apply plugin: 'idea'
idea {
project {
//if you want to set specific jdk and language level
jdkName = '1.6'
languageLevel = '1.5'
//you can update the source wildcards
wildcards += '!?*.ruby'
//you can change the modules of the the *.ipr
//modules = project(':someProject').idea.module
//you can change the output file
outputFile = new File(outputFile.parentFile, 'someBetterName.ipr')
//you can add project-level libraries
projectLibraries << new ProjectLibrary(name: "my-library", classes: [new Path("path/to/library")])
ipr {
withXml {
def node = it.asNode()
// Annotation Processor 활성화
def compilerConfiguration = node.find { it.@name == 'CompilerConfiguration'}
def oldApplicationProcession = compilerConfiguration.annotationProcessing
if (oldApplicationProcession != null) { compilerConfiguration.remove(oldApplicationProcession) }
def annotationProcessing = compilerConfiguration.appendNode('annotationProcessing')
def profile = annotationProcessing.appendNode('profile', ['default': 'true', 'name': 'Default', 'enabled': 'true']);
profile.appendNode('processorPath', ['useClasspath': 'true'])
// 자동 Git 디렉토리 매핑 추가
def vcsDirectoryMappingsNode = node.find { it.@name == 'VcsDirectoryMappings'}
if (vcsDirectoryMappingsNode != null) {
vcsDirectoryMappingsNode.appendNode('mapping', ['directory': '$PROJECT_DIR$', 'vcs': 'Git'])
}
}
}
}
}
==== provided ====
configurations {
provided
}
sourceSets {
main {
compileClasspath = compileClasspath + configurations.provided;
}
}
// 위의 provided 컨피규레이션은 spring prop-deps것을 사용해도 될 듯.
idea {
module {
scopes.PROVIDED.plus += configurations.provided;
}
}
==== Download dependencies' javadocs ====
idea {
module {
downloadJavadoc = true
}
}