/
build.gradle
128 lines (109 loc) · 3.82 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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
group = GROUP_ID
version = VERSION
apply plugin: 'com.android.library'
apply plugin: 'maven-publish'
apply plugin: 'com.jfrog.bintray'
android {
compileSdkVersion COMPILE_SDK_VERSION
buildToolsVersion BUILD_TOOLS_VERSION
defaultConfig {
minSdkVersion MIN_SDK_VERSION
targetSdkVersion TARGET_SDK_VERSION
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_6
targetCompatibility JavaVersion.VERSION_1_6
}
packagingOptions {
exclude 'META-INF/services/javax.annotation.processing.Processor'
}
}
configurations {
lintChecks
}
dependencies {
implementation "androidx.core:core:$ANDROIDX_LIBRARY_VERSION"
implementation "androidx.fragment:fragment:$ANDROIDX_LIBRARY_VERSION"
implementation "androidx.collection:collection:$ANDROIDX_LIBRARY_VERSION"
testImplementation "junit:junit:$JUNIT_VERSION"
testImplementation "org.mockito:mockito-core:$MOCKITO_VERSION"
testImplementation "org.powermock:powermock-api-mockito:$POWERMOCK_VERSION"
testImplementation "org.powermock:powermock-module-junit4:$POWERMOCK_VERSION"
api project(path: ':annotation')
lintChecks project(path: ':lint', configuration: 'lintChecks')
}
bintray {
publications = ['MyPublication']
user = bintrayUser
key = bintrayKey
dryRun = dryRun
publish = true
pkg {
repo = REPO
userOrg = USER
name = ARTIFACT_ID_LIBRARY
vcsUrl = VCS_URL
licenses = LICENCES
websiteUrl = WEBSITE
version {
name = VERSION
desc = DESCRIPTION
}
}
}
publishing {
publications {
MyPublication(MavenPublication) {
artifact sourcesJar
artifact javadocJar
artifact "$buildDir/outputs/aar/library-release.aar"
groupId GROUP_ID
artifactId ARTIFACT_ID_LIBRARY
version VERSION
pom.withXml {
def dependenciesNode = asNode().appendNode('dependencies')
// Iterate over the compile dependencies, adding a <dependency> node for each
configurations.implementation.allDependencies.each {
if (it.group != null && it.name != null && it.version != null) {
def dependencyNode = dependenciesNode.appendNode('dependency')
dependencyNode.appendNode('groupId', it.group)
// to change annotation module artifactId explicitly
// ref: https://github.com/dcendents/android-maven-gradle-plugin/issues/9#issuecomment-73550293
def artifactId = (it.group == GROUP_ID && it.name == "annotation") ? ARTIFACT_ID_ANNOTATION : it.name
dependencyNode.appendNode('artifactId', artifactId)
dependencyNode.appendNode('version', it.version)
}
}
}
}
}
}
task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier = 'sources'
}
task javadoc(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
artifacts {
archives javadocJar
archives sourcesJar
}
task copyLintJar(type: Copy) {
from(configurations.lintChecks) {
rename { 'lint.jar' }
}
into 'build/intermediates/lint/'
}
project.afterEvaluate {
def compileLintTask = project.tasks.find { it.name == 'compileLint' }
compileLintTask.dependsOn(copyLintJar)
}
// Android Library project: Artifactory Plugin adds 1 publication per Build Type
project.ext.publicationName = "release"
apply from: rootProject.file('gradle/gradle-artifactory-upload.gradle')