diff --git a/virtualapk-gradle-plugin/src/main/groovy/com.didi.virtualapk/VAPlugin.groovy b/virtualapk-gradle-plugin/src/main/groovy/com.didi.virtualapk/VAPlugin.groovy index 22c4a9184d96a1062400a5c2ab1a787533ff8d36..70750137ea617f71f4cda8cd29778f76294568f4 100644 --- a/virtualapk-gradle-plugin/src/main/groovy/com.didi.virtualapk/VAPlugin.groovy +++ b/virtualapk-gradle-plugin/src/main/groovy/com.didi.virtualapk/VAPlugin.groovy @@ -185,7 +185,7 @@ class VAPlugin extends BasePlugin { File hostLocalDir = new File(targetHost) if (!hostLocalDir.exists()) { - def err = "The directory of host application doesn't exist! Dir: ${hostLocalDir.absolutePath}" + def err = "The directory of host application doesn't exist! Dir: ${hostLocalDir.canonicalPath}" throw new InvalidUserDataException(err) } @@ -196,7 +196,7 @@ class VAPlugin extends BasePlugin { dst << hostR } } else { - def err = new StringBuilder("Can't find ${hostR.absolutePath}, please check up your host application\n") + def err = new StringBuilder("Can't find ${hostR.canonicalPath}, please check up your host application\n") err.append(" need apply com.didi.virtualapk.host in build.gradle of host application\n ") throw new InvalidUserDataException(err.toString()) } @@ -208,7 +208,7 @@ class VAPlugin extends BasePlugin { dst << hostVersions } } else { - def err = new StringBuilder("Can't find ${hostVersions.absolutePath}, please check up your host application\n") + def err = new StringBuilder("Can't find ${hostVersions.canonicalPath}, please check up your host application\n") err.append(" need apply com.didi.virtualapk.host in build.gradle of host application \n") throw new InvalidUserDataException(err.toString()) } diff --git a/virtualapk-gradle-plugin/src/main/groovy/com.didi.virtualapk/tasks/AssemblePlugin.groovy b/virtualapk-gradle-plugin/src/main/groovy/com.didi.virtualapk/tasks/AssemblePlugin.groovy index 9fdca0b4d609df4b0de0eddd7ca7e53de399394d..d1b97e57a7c6c7cb7965831191c5c2955def3e20 100644 --- a/virtualapk-gradle-plugin/src/main/groovy/com.didi.virtualapk/tasks/AssemblePlugin.groovy +++ b/virtualapk-gradle-plugin/src/main/groovy/com.didi.virtualapk/tasks/AssemblePlugin.groovy @@ -1,21 +1,17 @@ package com.didi.virtualapk.tasks -import com.android.annotations.NonNull import com.android.build.gradle.api.ApkVariant +import com.android.build.gradle.internal.api.ApplicationVariantImpl import com.didi.virtualapk.VAExtention import com.didi.virtualapk.utils.Log -import com.didi.virtualapk.utils.TaskUtil import com.sun.istack.internal.NotNull import org.gradle.api.Action import org.gradle.api.DefaultTask import org.gradle.api.Project -import org.gradle.api.Task import org.gradle.api.tasks.Input import org.gradle.api.tasks.OutputDirectory import org.gradle.api.tasks.TaskAction -import java.util.concurrent.Callable - /** * Gradle task for assemble plugin apk * @author zhengtao @@ -36,6 +32,8 @@ public class AssemblePlugin extends DefaultTask { String variantName + String buildDir + /** * Copy the plugin apk to out/plugin directory and rename to * the format required for the backend system @@ -55,6 +53,8 @@ public class AssemblePlugin extends DefaultTask { Log.i name, tip.toString() } + Log.i name, "More building infomation could be found in the dir: ${buildDir}." + getProject().copy { from originApkFile into pluginApkDir @@ -68,7 +68,7 @@ public class AssemblePlugin extends DefaultTask { @NotNull Project project @NotNull - ApkVariant variant + ApplicationVariantImpl variant ConfigAction(@NotNull Project project, @NotNull ApkVariant variant) { this.project = project @@ -77,35 +77,19 @@ public class AssemblePlugin extends DefaultTask { @Override void execute(AssemblePlugin assemblePluginTask) { + VAExtention virtualApk = project.virtualApk - map(assemblePluginTask, "appPackageName") { - variant.applicationId - } - - map(assemblePluginTask, "apkTimestamp", { - new Date().format("yyyyMMddHHmmss") - }) - - map(assemblePluginTask, "originApkFile") { - variant.outputs[0].outputFile - } - - map(assemblePluginTask, "pluginApkDir") { - new File(project.buildDir, "/outputs/plugin/${variant.name}") - } - - map(assemblePluginTask, "variantName") { - variant.name - } + assemblePluginTask.appPackageName = variant.applicationId + assemblePluginTask.apkTimestamp = new Date().format("yyyyMMddHHmmss") + assemblePluginTask.originApkFile = variant.outputs[0].outputFile + assemblePluginTask.pluginApkDir = new File(project.buildDir, "/outputs/plugin/${variant.name}") + assemblePluginTask.variantName = variant.name + assemblePluginTask.buildDir = virtualApk.getVaContext(variant.name).getBuildDir(variant.variantData.scope).canonicalPath assemblePluginTask.setGroup("build") assemblePluginTask.setDescription("Build ${variant.name.capitalize()} plugin apk") assemblePluginTask.dependsOn(variant.assemble.name) } - - static void map(@NonNull Task task, @NonNull String key, @NonNull Callable value) { - TaskUtil.map(task, key, value) - } } } diff --git a/virtualapk-gradle-plugin/src/main/groovy/com.didi.virtualapk/utils/TaskUtil.groovy b/virtualapk-gradle-plugin/src/main/groovy/com.didi.virtualapk/utils/TaskUtil.groovy deleted file mode 100644 index 75ae193e77f3c0f673e8a8e49811d9a39121d5ca..0000000000000000000000000000000000000000 --- a/virtualapk-gradle-plugin/src/main/groovy/com.didi.virtualapk/utils/TaskUtil.groovy +++ /dev/null @@ -1,25 +0,0 @@ -package com.didi.virtualapk.utils - -import com.android.annotations.NonNull -import org.gradle.api.Task -import org.gradle.api.internal.ConventionMapping - -import java.util.concurrent.Callable - -/** - * Created by qiaopu on 2018/3/19. - */ -public class TaskUtil { - - public static void map(@NonNull Task task, @NonNull String key, @NonNull Callable value) { - if (task instanceof GroovyObject) { - ConventionMapping conventionMapping = - (ConventionMapping) ((GroovyObject) task).getProperty("conventionMapping"); - conventionMapping.map(key, value); - } else { - throw new IllegalArgumentException( - "Don't know how to apply convention mapping to task of type " + task.getClass().getName()); - } - } - -}