From 1b6011e15693cd3f00c17ad167ba8c0c7b358a47 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 21 Dec 2010 23:02:25 -0600 Subject: [PATCH 1/5] Changed path to dx.jar to fix issue 115 --- src/main/java/com/jayway/maven/plugins/android/AndroidSdk.java | 1 + .../maven/plugins/android/phase08preparepackage/DexMojo.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/jayway/maven/plugins/android/AndroidSdk.java b/src/main/java/com/jayway/maven/plugins/android/AndroidSdk.java index 9c99acacd..48f71e417 100644 --- a/src/main/java/com/jayway/maven/plugins/android/AndroidSdk.java +++ b/src/main/java/com/jayway/maven/plugins/android/AndroidSdk.java @@ -140,6 +140,7 @@ private void assertPathIsDirectory(final File path) { public String getPathForTool(String tool) { String[] possiblePaths = { + sdkPath + "/" + PLATFORM_TOOLS_FOLDER_NAME + "/lib/" + tool, sdkPath + "/" + PLATFORM_TOOLS_FOLDER_NAME + "/" + tool, sdkPath + "/" + PLATFORM_TOOLS_FOLDER_NAME + "/" + tool + ".exe", sdkPath + "/" + PLATFORM_TOOLS_FOLDER_NAME + "/" + tool + ".bat", diff --git a/src/main/java/com/jayway/maven/plugins/android/phase08preparepackage/DexMojo.java b/src/main/java/com/jayway/maven/plugins/android/phase08preparepackage/DexMojo.java index d01b409be..581f44fa5 100644 --- a/src/main/java/com/jayway/maven/plugins/android/phase08preparepackage/DexMojo.java +++ b/src/main/java/com/jayway/maven/plugins/android/phase08preparepackage/DexMojo.java @@ -103,7 +103,7 @@ private void runDex(CommandExecutor executor, File outputFile, } getLog().info(getAndroidSdk().getPathForTool("dx") + " " + commands.toString()); try { - executor.executeCommand(getAndroidSdk().getPathForTool("dx"), commands, project.getBasedir(), false); + executor.executeCommand(getAndroidSdk().getPathForTool("dx.jar"), commands, project.getBasedir(), false); } catch (ExecutionException e) { throw new MojoExecutionException("", e); } From 5c23926d866eaee5e3be50eabc6a8cd1782217bb Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 21 Jan 2011 15:31:42 -0600 Subject: [PATCH 2/5] Missed case for dx.jar. Worked on old JDK but upgraded to newest jdk had to explicitly us the java -jar command. --- .../maven/plugins/android/phase08preparepackage/DexMojo.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/jayway/maven/plugins/android/phase08preparepackage/DexMojo.java b/src/main/java/com/jayway/maven/plugins/android/phase08preparepackage/DexMojo.java index 581f44fa5..ddb5eb79d 100644 --- a/src/main/java/com/jayway/maven/plugins/android/phase08preparepackage/DexMojo.java +++ b/src/main/java/com/jayway/maven/plugins/android/phase08preparepackage/DexMojo.java @@ -85,6 +85,8 @@ private void runDex(CommandExecutor executor, File outputFile, File inputFile) throws MojoExecutionException { File classesOutputDirectory = new File(project.getBuild().getDirectory(), "android-classes"); List commands = new ArrayList(); + commands.add("-jar"); + commands.add(getAndroidSdk().getPathForTool("dx.jar")); if (jvmArguments != null) { for (String jvmArgument : jvmArguments) { if (jvmArgument != null) { @@ -103,7 +105,7 @@ private void runDex(CommandExecutor executor, File outputFile, } getLog().info(getAndroidSdk().getPathForTool("dx") + " " + commands.toString()); try { - executor.executeCommand(getAndroidSdk().getPathForTool("dx.jar"), commands, project.getBasedir(), false); + executor.executeCommand("java", commands, project.getBasedir(), false); } catch (ExecutionException e) { throw new MojoExecutionException("", e); } From 90e15f5a007882c0565418a2314f397aa6d0da1f Mon Sep 17 00:00:00 2001 From: Hugo Josefson Date: Tue, 1 Feb 2011 22:55:26 +0100 Subject: [PATCH 3/5] Use same java executable, instead of relying on PATH. --- .../android/phase08preparepackage/DexMojo.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/jayway/maven/plugins/android/phase08preparepackage/DexMojo.java b/src/main/java/com/jayway/maven/plugins/android/phase08preparepackage/DexMojo.java index ddb5eb79d..840144710 100644 --- a/src/main/java/com/jayway/maven/plugins/android/phase08preparepackage/DexMojo.java +++ b/src/main/java/com/jayway/maven/plugins/android/phase08preparepackage/DexMojo.java @@ -105,12 +105,23 @@ private void runDex(CommandExecutor executor, File outputFile, } getLog().info(getAndroidSdk().getPathForTool("dx") + " " + commands.toString()); try { - executor.executeCommand("java", commands, project.getBasedir(), false); + executor.executeCommand(getJavaExecutable().getAbsolutePath(), commands, project.getBasedir(), false); } catch (ExecutionException e) { throw new MojoExecutionException("", e); } } + /** + * Figure out the full path to the current java executable. + * + * @return the full path to the current java executable. + */ + private static File getJavaExecutable() { + final String javaHome = System.getProperty("java.home"); + final String slash = File.separator; + return new File(javaHome + slash + "bin" + slash + "java"); + } + protected File createApkSourcesFile() throws MojoExecutionException { final File apksources = new File(project.getBuild().getDirectory(), project.getBuild().getFinalName() + ".apksources"); FileUtils.deleteQuietly(apksources); From 8fc450f6fae30c69b340224ee6645897d4d9c617 Mon Sep 17 00:00:00 2001 From: Hugo Josefson Date: Tue, 1 Feb 2011 23:10:26 +0100 Subject: [PATCH 4/5] Log what we actually execute. --- .../maven/plugins/android/phase08preparepackage/DexMojo.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/jayway/maven/plugins/android/phase08preparepackage/DexMojo.java b/src/main/java/com/jayway/maven/plugins/android/phase08preparepackage/DexMojo.java index 840144710..309630b81 100644 --- a/src/main/java/com/jayway/maven/plugins/android/phase08preparepackage/DexMojo.java +++ b/src/main/java/com/jayway/maven/plugins/android/phase08preparepackage/DexMojo.java @@ -103,9 +103,10 @@ private void runDex(CommandExecutor executor, File outputFile, if (coreLibrary) { commands.add("--core-library"); } - getLog().info(getAndroidSdk().getPathForTool("dx") + " " + commands.toString()); + final String javaExecutable = getJavaExecutable().getAbsolutePath(); + getLog().info(javaExecutable + " " + commands.toString()); try { - executor.executeCommand(getJavaExecutable().getAbsolutePath(), commands, project.getBasedir(), false); + executor.executeCommand(javaExecutable, commands, project.getBasedir(), false); } catch (ExecutionException e) { throw new MojoExecutionException("", e); } From 73b40038875568b5a6762f6534b1ad8d0ca47455 Mon Sep 17 00:00:00 2001 From: Hugo Josefson Date: Tue, 1 Feb 2011 23:18:41 +0100 Subject: [PATCH 5/5] Added more possible paths. --- .../java/com/jayway/maven/plugins/android/AndroidSdk.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/jayway/maven/plugins/android/AndroidSdk.java b/src/main/java/com/jayway/maven/plugins/android/AndroidSdk.java index 8cab96dd0..6f450759b 100644 --- a/src/main/java/com/jayway/maven/plugins/android/AndroidSdk.java +++ b/src/main/java/com/jayway/maven/plugins/android/AndroidSdk.java @@ -134,22 +134,24 @@ private void assertPathIsDirectory(final File path) { /** * Returns the complete path for a tool, based on this SDK. * - * @param tool which tool, for example adb. + * @param tool which tool, for example adb or dx.jar. * @return the complete path as a String, including the tool's filename. */ public String getPathForTool(String tool) { String[] possiblePaths = { - sdkPath + "/" + PLATFORM_TOOLS_FOLDER_NAME + "/lib/" + tool, sdkPath + "/" + PLATFORM_TOOLS_FOLDER_NAME + "/" + tool, sdkPath + "/" + PLATFORM_TOOLS_FOLDER_NAME + "/" + tool + ".exe", sdkPath + "/" + PLATFORM_TOOLS_FOLDER_NAME + "/" + tool + ".bat", + sdkPath + "/" + PLATFORM_TOOLS_FOLDER_NAME + "/lib/" + tool, getPlatform() + "/tools/" + tool, getPlatform() + "/tools/" + tool + ".exe", getPlatform() + "/tools/" + tool + ".bat", + getPlatform() + "/tools/lib/" + tool, sdkPath + "/tools/" + tool, sdkPath + "/tools/" + tool + ".exe", - sdkPath + "/tools/" + tool + ".bat" + sdkPath + "/tools/" + tool + ".bat", + sdkPath + "/tools/lib/" + tool }; for (String possiblePath : possiblePaths) {