-
Notifications
You must be signed in to change notification settings - Fork 0
/
runConfigs.gradle
51 lines (47 loc) · 1.91 KB
/
runConfigs.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
// Méthode utilitaire pour générer les configurations de lancement d'IDEA
task genIntellijRuns {
new File("bin/").mkdirs()
def xmlFile = rootProject.projectDir.canonicalPath+'/.idea/workspace.xml'
def file = new File(xmlFile)
if(!file.exists()) {
return
}
def xml = new XmlParser().parse(xmlFile)
def runManager = xml.component.find { it.@name == 'RunManager' }
if(!runManager) {
def builder = new NodeBuilder()
runManager = builder.component(name: "RunManager") {
}
xml.append runManager
}
subprojects.each {
def moduleName = "${it.rootProject.name}.${it.name}"
println "Getting run configurations from $moduleName"
def subproject = it
//def list = subproject.tasks.runConfigList.list()
def list = it.runConfigs
println "$moduleName: $list"
list.each {
def className = it
println "Checking run configuration '$it' presense"
def existingRunConfiguration = runManager.configuration.find { it.@name == className }
if (!existingRunConfiguration) {
println "Run configuration '$it' not present, creating it"
def builder = new NodeBuilder()
def runConfig = builder.configuration(name: it, type: "Application", factoryName: "Application") {
option(name: "MAIN_CLASS_NAME", value: className) // classe principale
module(name: "${moduleName}.main")
option(name: "WORKING_DIRECTORY", value: "\$PROJECT_DIR\$/bin") // chemin d'exécution
method(v: "2") {
option(name: "Make", enabled: true)
}
}
runManager.append runConfig
}
}
}
new XmlNodePrinter(new PrintWriter(new FileWriter(xmlFile))).print(xml)
}
tasks.idea {
dependsOn genIntellijRuns
}