|
1 | | -apply plugin: 'maven-publish' |
2 | | -apply plugin: 'signing' |
3 | 1 |
|
4 | | -def repository = 'maven' |
5 | | -def qCloudGroupId = 'com.qcloud.cos' |
6 | | - |
7 | | - |
8 | | -def sonatypeUsername = findProperty("ossrhUsername") |
9 | | -def sonatypePassword = findProperty("ossrhPassword") |
10 | | - |
11 | | -System.out.println("sonatypeUsername " + sonatypeUsername) |
12 | | - |
13 | | -def developerId = 'tencentqcloud' |
14 | | -def developerName = 'tencentqcloudterminal' |
15 | | -def developerEmail = '[email protected]' |
16 | | - |
17 | | -def userOrganization = 'tencentqcloudterminal' |
18 | | -def siteUrl = 'https://cloud.tencent.com/' |
19 | | -def gitUrl = 'https://github.com/tencentyun/qcloud-sdk-android.git' |
20 | | -def githubUrl = 'https://github.com/tencentyun/qcloud-sdk-android' |
21 | | -def licensesUrl = 'https://github.com/tencentyun/qcloud-sdk-android/blob/master/LICENSE' |
22 | | -def qcloudLicenses = ["MIT"] |
23 | | - |
24 | | -def projectVersionName = android.defaultConfig.versionName |
25 | | -def projectArtifactId = project.extensions.getByName('artifactId') |
26 | | -// def projectArchiveName = project.extensions.getByName('archiveName') |
27 | | -def projectDesc = project.extensions.getByName('artifactDesc') |
28 | | -def projectPackageName = project.extensions.findByName('packageName') |
29 | | -def artifactProduct = project.extensions.findByName('artifactProduct') |
30 | | -def archiveFilePath = project.extensions.findByName('archiveFilePath') |
31 | | -def lang = project.extensions.findByName('lang') |
32 | | -if (!lang) { |
33 | | - lang = 'java' |
34 | | -} |
35 | | -def packageType = project.extensions.findByName('packageType') |
36 | | -packageType = packageType == null ? "jar" : packageType |
37 | | -packageType = 'aar' |
38 | | - |
39 | | -group = qCloudGroupId |
40 | | -version = android.defaultConfig.versionName |
41 | | -archivesBaseName = projectArtifactId |
42 | | -if (!projectPackageName) { |
43 | | - projectPackageName = projectArtifactId |
44 | | -} |
45 | | - |
46 | | - |
47 | | -// publish to mavencentral |
48 | | -publishing { |
49 | | - publications { |
50 | | - mavenAar(MavenPublication) { |
51 | | - groupId group |
52 | | - artifactId projectArtifactId |
53 | | - version version |
54 | | - artifact("$buildDir/${archiveFilePath}") |
55 | | - pom { |
56 | | - name = projectArtifactId |
57 | | - description = projectDesc |
58 | | - url = githubUrl |
59 | | - packaging = packageType |
60 | | - licenses { |
61 | | - license { |
62 | | - name = 'Tencent Binary License' |
63 | | - url = licensesUrl |
64 | | - } |
65 | | - } |
66 | | - developers { |
67 | | - developer { |
68 | | - id = ossrhUsername |
69 | | - name = ossrhUsername |
70 | | - |
71 | | - } |
72 | | - } |
73 | | - scm { |
74 | | - url = 'scm:[email protected]:tencentyun/qcloud-sdk-android.git' |
75 | | - connection = 'scm:[email protected]:tencentyun/qcloud-sdk-android.git' |
76 | | - developerConnection = 'scm:[email protected]:tencentyun/qcloud-sdk-android.git' |
77 | | - } |
78 | | - |
79 | | - withXml { |
80 | | - |
81 | | - def dependenciesNode = asNode().appendNode('dependencies') |
82 | | - //拿到所有编译时的依赖 |
83 | | - def dependenciesList = [] |
84 | | - dependenciesList.addAll(configurations.implementation.allDependencies) |
85 | | - dependenciesList.addAll(configurations.api.allDependencies) |
86 | | - dependenciesList.each { |
87 | | - if (null != it.group) { |
88 | | - def dependencyNode = dependenciesNode.appendNode('dependency') |
89 | | - dependencyNode.appendNode('groupId', it.group) |
90 | | - def artifactId = it.name |
91 | | - if (it.hasProperty('dependencyProject')) { |
92 | | - artifactId = it.dependencyProject.extensions.findByName('artifactId') |
93 | | - } |
94 | | - System.out.println('artifactId is ${}' + artifactId) |
95 | | - dependencyNode.appendNode('artifactId', artifactId) |
96 | | - dependencyNode.appendNode('version', it.version) |
97 | | - dependencyNode.appendNode('scope', 'compile') |
98 | | - } |
99 | | - } |
100 | | - } |
101 | | - } |
102 | | - |
103 | | - } |
104 | | - } |
105 | | - repositories { |
106 | | - maven { |
107 | | - def releasesRepoUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2" |
108 | | - def snapshotsRepoUrl = "https://oss.sonatype.org/content/repositories/snapshots" |
109 | | - url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl |
110 | | - credentials { |
111 | | - username = sonatypeUsername |
112 | | - password = sonatypePassword |
113 | | - } |
114 | | - } |
115 | | - } |
116 | | -} |
117 | | - |
118 | | -signing { |
119 | | - sign publishing.publications.mavenAar |
120 | | -} |
121 | | - |
122 | | -// generate javadoc |
123 | | -android.libraryVariants.all { variant -> |
124 | | - if(variant.name == 'release' || (artifactProduct && variant.name == artifactProduct + 'Release')) { |
125 | | - task("generate${variant.name.capitalize()}Javadoc", type: Javadoc) { |
126 | | - description "Generates Javadoc for $variant.name." |
127 | | - source = variant.javaCompile.source |
128 | | - options.encoding("utf-8") |
129 | | - // exclude '**/BuildConfig.java' |
130 | | - exclude '**/R.java' |
131 | | - doFirst { |
132 | | - classpath = files(variant.javaCompile.classpath.files, project.android.getBootClasspath()) |
133 | | - } |
134 | | - } |
135 | | - task("javadocJar", type: Jar, dependsOn: "generate${variant.name.capitalize()}Javadoc") { |
136 | | - classifier = 'javadoc' |
137 | | - from tasks.getByName("generate${variant.name.capitalize()}Javadoc").destinationDir |
138 | | - } |
139 | | - task("sourcesJar", type: Jar) { |
140 | | - classifier = 'sources' |
141 | | - from artifactProduct ? android.sourceSets."${artifactProduct}".java.srcDirs + android.sourceSets.main.java.srcDirs : android.sourceSets.main.java.srcDirs |
142 | | - } |
143 | | - def releaseJavaTask = artifactProduct ? "compile${artifactProduct.capitalize()}ReleaseJavaWithJavac" : |
144 | | - "compileRelease${lang == 'kotlin' ? 'Kotlin' : 'JavaWithJavac'}" |
145 | | - task("androidLibraryJar", type: Jar, dependsOn: releaseJavaTask ) { |
146 | | - from tasks.getByName(releaseJavaTask).destinationDir |
147 | | - exclude '**/R.class' |
148 | | - exclude '**/R$*.class' |
149 | | - exclude '**/BuildConfig.class' |
150 | | - } |
151 | | - artifacts { |
152 | | - if (!packageType.equals("aar")) { |
153 | | - archives tasks.getByName("androidLibraryJar") |
154 | | - } |
155 | | - archives tasks.getByName("javadocJar") |
156 | | - archives tasks.getByName("sourcesJar") |
157 | | - } |
158 | | - } |
159 | | -} |
160 | | - |
161 | | -task releaseLibrary(type: Copy){ |
162 | | - from('build/libs/') |
163 | | - into("../release/${projectVersionName}/") |
164 | | -} |
0 commit comments