Merge "Bring back <type>aar</type> hack." into oc-mr1-support-27.0-dev
diff --git a/buildSrc/dependencies.gradle b/buildSrc/dependencies.gradle
index ef538d1..5a3a06b 100644
--- a/buildSrc/dependencies.gradle
+++ b/buildSrc/dependencies.gradle
@@ -41,7 +41,7 @@
}
//arch components
-libs.arch_lifecycle_runtime = "android.arch.lifecycle:runtime:1.0.0"
+libs.arch_lifecycle_runtime = "android.arch.lifecycle:runtime:1.0.0@aar"
// Other dependencies
libs.xml_parser_apis = 'xerces:xmlParserAPIs:2.6.2'
diff --git a/buildSrc/src/main/groovy/android/support/SupportLibraryMavenUploader.groovy b/buildSrc/src/main/groovy/android/support/SupportLibraryMavenUploader.groovy
index 7f942e1..957cae8 100644
--- a/buildSrc/src/main/groovy/android/support/SupportLibraryMavenUploader.groovy
+++ b/buildSrc/src/main/groovy/android/support/SupportLibraryMavenUploader.groovy
@@ -16,9 +16,11 @@
package android.support
+import com.android.build.gradle.LibraryPlugin
import com.google.common.collect.ImmutableMap
import org.gradle.api.Action
import org.gradle.api.Project
+import org.gradle.api.artifacts.ProjectDependency
import org.gradle.api.artifacts.maven.MavenDeployer
import org.gradle.api.tasks.Upload
@@ -66,6 +68,21 @@
}
}
}
+
+ uploadTask.doFirst {
+ Set<ProjectDependency> allDeps = new HashSet<>();
+ collectDependenciesForConfiguration(allDeps, project, "api");
+ collectDependenciesForConfiguration(allDeps, project, "implementation");
+ collectDependenciesForConfiguration(allDeps, project, "compile");
+
+ mavenDeployer.getPom().whenConfigured {
+ it.dependencies.forEach { dep ->
+ if (isAndroidProject(dep.groupId, dep.artifactId, allDeps)) {
+ dep.type = "aar"
+ }
+ }
+ }
+ }
}
});
} else {
@@ -73,4 +90,23 @@
}
}
}
+
+ private static void collectDependenciesForConfiguration(Set<ProjectDependency> dependencies,
+ Project project, String name) {
+ def config = project.configurations.findByName(name);
+ if (config != null) {
+ config.dependencies.withType(ProjectDependency.class).forEach {
+ dep -> dependencies.add(dep)
+ }
+ }
+ }
+
+ private static boolean isAndroidProject(String groupId, String artifactId, Set<ProjectDependency> deps) {
+ for (ProjectDependency dep : deps) {
+ if (dep.group == groupId && dep.name == artifactId) {
+ return dep.getDependencyProject().plugins.hasPlugin(LibraryPlugin.class)
+ }
+ }
+ return false;
+ }
}
\ No newline at end of file
diff --git a/compat/build.gradle b/compat/build.gradle
index 4d869b8..1e5d847 100644
--- a/compat/build.gradle
+++ b/compat/build.gradle
@@ -4,6 +4,7 @@
api project(':support-annotations')
api (libs.arch_lifecycle_runtime) {
exclude module: 'support-annotations'
+ transitive = true
}
androidTestImplementation libs.test_runner, { exclude module: 'support-annotations' }