forked from mohamnag/doclava
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.gradle
107 lines (90 loc) · 2.61 KB
/
build.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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
import org.gradle.internal.jvm.Jvm
apply plugin: 'java'
apply plugin: 'maven-publish'
group = 'com.diegotori.doclava'
archivesBaseName = project.name
version = '1.0.6.2'
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
options.warnings = false
}
repositories {
jcenter()
}
dependencies {
compile files(Jvm.current().toolsJar)
compile 'com.google.guava:guava:18.0'
compile 'com.google.jsilver:jsilver:1.0.0'
compile 'org.antlr:antlr:3.4'
compile 'org.slf4j:slf4j-api:1.7.21'
compile 'ch.qos.logback:logback-classic:1.1.7'
compile 'ch.qos.logback:logback-core:1.1.7'
}
javadoc {
title = "Documentation for $project.name."
group = JavaBasePlugin.DOCUMENTATION_GROUP
description "Generates Javadoc for Java Project ${project.name}."
//Set our code to document.
source = project.sourceSets.main.allJava
classpath = files(project.configurations.compile, compileJava.classpath);
failOnError = false;
options {
bootClasspath Jvm.current().runtimeJar
}
options.encoding = "UTF-8"
}
task sourceJar(type: Jar) {
from sourceSets.main.allSource
classifier = 'sources'
}
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
artifacts {
archives jar
archives sourceJar
archives javadocJar
}
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
artifact sourceJar
artifact javadocJar
}
}
}
model {
tasks.generatePomFileForMavenJavaPublication {
destination = file("$buildDir/poms/$project.name-${project.version}.pom")
}
}
task fatJar(type: Jar, dependsOn: [':compileJava', ':processResources']){
group = BasePlugin.BUILD_GROUP
description = "Creates a statically linked $project.name fat JAR binary."
from files(sourceSets.main.output)
def nonJavadocRuntimeDeps = configurations.compile.asFileTree.files.findAll {
it.name != 'tools.jar'
}.collect {
it.isDirectory() ? it : zipTree(it)
}
from nonJavadocRuntimeDeps
manifest {
attributes 'Main-Class': 'com.google.doclava.Doclava'
}
baseName = "${project.name}-fatjar"
destinationDir = file("$buildDir/fat-jar")
}
task createStandaloneArtifacts(type: Copy,
dependsOn: [":fatJar", ":generatePomFileForMavenJavaPublication"]){
group = PublishingPlugin.PUBLISH_TASK_GROUP
doFirst {
from generatePomFileForMavenJavaPublication.destination
}
from project.configurations.archives.allArtifacts.files
from fatJar.destinationDir
into file("$buildDir/standalone-dist")
}