2 apply plugin: "eclipse"
4 apply plugin: "application"
5 apply plugin: 'project-report'
8 // enables fatjar, the creation of a jar with all dependencies bundled inside
14 classpath 'eu.appsatori:gradle-fatjar-plugin:0.2'
17 apply plugin: 'fatjar'
21 attributes 'Main-Class': "net.sf.jabref.JabRefMain"
27 exceptionFormat "full" // default is "short"
40 srcDirs = ["src/main/java", "src/main/gen"]
54 compile 'com.jgoodies:jgoodies-common:1.4.0'
55 compile 'com.jgoodies:jgoodies-forms:1.6.0'
56 compile 'com.jgoodies:jgoodies-looks:2.5.2'
57 compile fileTree(dir: 'lib/jgoodies/', includes: ['*.jar']) // instead of having the source code inside
59 compile 'org.apache.pdfbox:pdfbox:1.7.1'
60 compile 'org.apache.pdfbox:fontbox:1.7.1'
61 compile 'org.apache.pdfbox:jempbox:1.7.1'
64 compile fileTree(dir: 'lib/ritopt/', includes: ['*.jar']) // instead of having the source code inside
66 compile 'org.openoffice:juh:3.2.1'
67 compile 'org.openoffice:jurt:3.2.1'
68 compile 'org.openoffice:ridl:3.2.1'
69 compile 'org.openoffice:unoil:3.2.1'
71 antlr2 'antlr:antlr:2.7.7'
72 antlr3 'org.antlr:antlr:3.4'
73 compile 'org.antlr:antlr-runtime:3.4'
75 compile 'mysql:mysql-connector-java:5.0.7'
76 compile 'org.postgresql:postgresql:9.2-1002-jdbc4'
78 compile fileTree(dir: 'lib', includes: ['glazedlists-1.8.0_java15.jar', 'jayatana-1.2.4.jar', 'microba.jar', 'spin.jar'])
80 compile 'net.java.dev.jna:jna:4.1.0'
82 // not available in maven repository
83 compile fileTree(dir: 'lib/plugin', includes: ['jpf.jar', 'jpf-boot.jar', 'commons-logging.jar', 'JPFCodeGenerator-rt.jar'])
85 compile fileTree(dir: 'lib/spl/jersey', includes: ['*.jar'])
86 compile fileTree(dir: 'lib/spl/sciplore', includes: ['*.jar'])
88 compile 'junit:junit:4.11'
90 generateClasspath fileTree(dir: 'lib/plugin', includes: ['jpf.jar', 'jpf-boot.jar', 'JPFCodeGenerator.jar', 'velocity-dep-1.5.jar'])
93 // use ant targets with prefix antTargets.XXXXX
94 ant.importBuild "build-wrapper.xml"
96 sourceCompatibility = 1.6
97 mainClassName = "net.sf.jabref.JabRefMain"
99 task wrapper(type: Wrapper) {
100 gradleVersion = '2.1'
104 // files are all encoded using UTF-8
105 options.encoding = 'UTF-8'
106 options.compilerArgs << "-Xlint:unchecked"
110 // files are all encoded using UTF-8
111 options.encoding = 'UTF-8'
116 // files are all encoded using UTF-8
123 // jabref specific tasks
124 compileJava.dependsOn "generateSource"
126 task generateSource(dependsOn: ["generatePluginSource", "generateBstGrammarSource", "generateSearchTreeParserSource"]) {
128 description = 'Generates all Java source files.'
131 task generatePluginSource(type: JavaExec) {
133 description = 'Generates _JabRefPlugin.java with JPF.'
135 ext.pluginsDir = "src/main/resources/plugins"
137 inputs.dir file(ext.pluginsDir)
138 outputs.file file("src/main/gen/net/sf/jabref/plugin/core/generated/_JabRefPlugin.java")
140 main = "net.sf.jabref.plugin.util.CodeGenerator"
141 args = [ext.pluginsDir]
142 classpath = configurations.generateClasspath
145 task generateBstGrammarSource(type: JavaExec) {
147 description = 'Generates BstLexer.java and BstParser.java from the Bst.g grammar file using antlr.'
149 File antlrSource = file('src/main/antlr3/net/sf/jabref/bst/Bst.g')
151 inputs.file antlrSource
152 outputs.file file('src/main/gen/net/sf/jabref/bst/BstLexer.java')
153 outputs.file file('src/main/gen/net/sf/jabref/bst/BstParser.java')
155 main = 'org.antlr.Tool'
156 classpath = configurations.antlr3
157 args = ["-o", file('src/main/gen/net/sf/jabref/bst/'), antlrSource]
160 task generateSearchLexerSource(type: JavaExec) {
161 String grammarFile = "Lexer"
164 description = "Generates java files for ${grammarFile}.g antlr2."
166 String packagePath = "net/sf/jabref/search"
167 File antlr2Path = file("src/main/antlr2")
168 File genPath = file("src/main/gen")
170 File antlrSource = file("$antlr2Path/$packagePath/${grammarFile}.g")
171 File destinationDir = file("$genPath/$packagePath")
173 inputs.file antlrSource
174 outputs.file file("$destinationDir/SearchExpression${grammarFile}.java")
175 outputs.file file("$destinationDir/SearchExpression${grammarFile}.smap")
176 outputs.file file("$destinationDir/SearchExpression${grammarFile}TokenTypes.java")
177 outputs.file file("$destinationDir/SearchExpression${grammarFile}TokenTypes.txt")
180 classpath = configurations.antlr2
181 args = ["-o", destinationDir, antlrSource]
184 task generateSearchParserSource(type: JavaExec, dependsOn: "generateSearchLexerSource") {
185 String grammarFile = "Parser"
188 description = "Generates java files for ${grammarFile}.g antlr2."
190 String packagePath = "net/sf/jabref/search"
191 File antlr2Path = file("src/main/antlr2")
192 File genPath = file("src/main/gen")
194 File antlrSource = file("$antlr2Path/$packagePath/${grammarFile}.g")
195 File destinationDir = file("$genPath/$packagePath")
197 inputs.file antlrSource
198 outputs.file file("$destinationDir/SearchExpression${grammarFile}.java")
199 outputs.file file("$destinationDir/SearchExpression${grammarFile}.smap")
200 outputs.file file("$destinationDir/SearchExpression${grammarFile}TokenTypes.java")
201 outputs.file file("$destinationDir/SearchExpression${grammarFile}TokenTypes.txt")
204 classpath = configurations.antlr2
205 args = ["-o", destinationDir, antlrSource]
208 task generateSearchTreeParserSource(type: JavaExec, dependsOn: "generateSearchParserSource") {
209 String grammarFile = "TreeParser"
212 description = "Generates java files for ${grammarFile}.g antlr2."
214 String packagePath = "net/sf/jabref/search"
215 File antlr2Path = file("src/main/antlr2")
216 File genPath = file("src/main/gen")
218 File antlrSource = file("$antlr2Path/$packagePath/${grammarFile}.g")
219 File destinationDir = file("$genPath/$packagePath")
221 inputs.file antlrSource
222 outputs.file file("$destinationDir/SearchExpression${grammarFile}.java")
223 outputs.file file("$destinationDir/SearchExpression${grammarFile}.smap")
224 outputs.file file("$destinationDir/SearchExpression${grammarFile}TokenTypes.java")
225 outputs.file file("$destinationDir/SearchExpression${grammarFile}TokenTypes.txt")
228 classpath = configurations.antlr2
229 args = ["-o", destinationDir, antlrSource]
232 // git support in intellij idea
234 withXml { provider ->
235 provider.node.component.find { it.@name == 'VcsDirectoryMappings' }.mapping.@vcs = 'Git'