From 378b2315b474e9a94d034f3955eca7cb0a59cba0 Mon Sep 17 00:00:00 2001 From: Josh Rosen <joshrosen@apache.org> Date: Tue, 2 Sep 2014 10:45:14 -0700 Subject: [PATCH] [SPARK-3061] Fix Maven build under Windows The Maven build was failing on Windows because it tried to call the unix `unzip` utility to extract the Py4J files into core's build directory. I've fixed this issue by using the `maven-antrun-plugin` to perform the unzipping. I also fixed an issue that prevented tests from running under Windows: In the Maven ScalaTest plugin, the filename listed in <filereports> is placed under the <reportsDirectory>; the current code places it in a subdirectory of reportsDirectory, e.g. ``` ${project.build.directory}/surefire-reports/${project.build.directory}/SparkTestSuite.txt ``` This caused problems under Windows because it would try to create a subdirectory named "c:\\". Note that the tests still fail under Windows (for other reasons); this PR just allows them to run and fail rather than crash when trying to create the test reports directory. Author: Josh Rosen <joshrosen@apache.org> Author: Josh Rosen <rosenville@gmail.com> Author: Josh Rosen <joshrosen@databricks.com> Closes #2165 from JoshRosen/windows-support and squashes the following commits: 651d210 [Josh Rosen] Unzip to python/build instead of core/build fbf3e61 [Josh Rosen] 4 spaces -> 2 spaces e347668 [Josh Rosen] Fix Maven scalatest filereports path: 4994af1 [Josh Rosen] [SPARK-3061] Use maven-antrun-plugin to unzip Py4J. --- core/pom.xml | 18 ++++++------------ pom.xml | 2 +- 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/core/pom.xml b/core/pom.xml index 83c708dfc9..55bfe0b841 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -306,26 +306,20 @@ </plugin> <!-- Unzip py4j so we can include its files in the jar --> <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>exec-maven-plugin</artifactId> - <version>1.2.1</version> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-antrun-plugin</artifactId> <executions> <execution> <phase>generate-resources</phase> <goals> - <goal>exec</goal> + <goal>run</goal> </goals> </execution> </executions> <configuration> - <executable>unzip</executable> - <workingDirectory>../python</workingDirectory> - <arguments> - <argument>-o</argument> - <argument>lib/py4j*.zip</argument> - <argument>-d</argument> - <argument>build</argument> - </arguments> + <tasks> + <unzip src="../python/lib/py4j-0.8.2.1-src.zip" dest="../python/build" /> + </tasks> </configuration> </plugin> <plugin> diff --git a/pom.xml b/pom.xml index 556b9da3d6..a5eaea80af 100644 --- a/pom.xml +++ b/pom.xml @@ -880,7 +880,7 @@ <configuration> <reportsDirectory>${project.build.directory}/surefire-reports</reportsDirectory> <junitxml>.</junitxml> - <filereports>${project.build.directory}/SparkTestSuite.txt</filereports> + <filereports>SparkTestSuite.txt</filereports> <argLine>-Xmx3g -XX:MaxPermSize=${MaxPermGen} -XX:ReservedCodeCacheSize=512m</argLine> <stderr/> <systemProperties> -- GitLab