You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by rm...@apache.org on 2015/04/14 10:56:03 UTC

flink git commit: [FLINK-1342] Backport quickstart fixes to 0.8

Repository: flink
Updated Branches:
  refs/heads/release-0.8 59fb091c7 -> 5cde1e943


[FLINK-1342] Backport quickstart fixes to 0.8

This closes #597


Project: http://git-wip-us.apache.org/repos/asf/flink/repo
Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/5cde1e94
Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/5cde1e94
Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/5cde1e94

Branch: refs/heads/release-0.8
Commit: 5cde1e9438b06d60d1e1378b0a9f335a23282b41
Parents: 59fb091
Author: Robert Metzger <rm...@apache.org>
Authored: Mon Apr 13 20:37:54 2015 +0200
Committer: Robert Metzger <rm...@apache.org>
Committed: Tue Apr 14 10:55:09 2015 +0200

----------------------------------------------------------------------
 docs/java_api_quickstart.md                     |   2 +-
 docs/scala_api_quickstart.md                    |   2 +-
 .../main/resources/archetype-resources/pom.xml  | 174 +++++++++++++++---
 .../src/assembly/flink-fat-jar.xml              |  39 -----
 .../main/resources/archetype-resources/pom.xml  | 175 ++++++++++++++++---
 .../src/assembly/flink-fat-jar.xml              |  39 -----
 6 files changed, 311 insertions(+), 120 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flink/blob/5cde1e94/docs/java_api_quickstart.md
----------------------------------------------------------------------
diff --git a/docs/java_api_quickstart.md b/docs/java_api_quickstart.md
index de01b3f..4f975dd 100644
--- a/docs/java_api_quickstart.md
+++ b/docs/java_api_quickstart.md
@@ -68,7 +68,7 @@ A note to Mac OS X users: The default JVM heapsize for Java is too small for Fli
 
 ## Build Project
 
-If you want to __build your project__, go to your project directory and issue the`mvn clean package` command. You will __find a jar__ that runs on every Flink cluster in __target/your-artifact-id-1.0-SNAPSHOT.jar__. There is also a fat-jar,  __target/your-artifact-id-1.0-SNAPSHOT-flink-fat-jar.jar__. This
+If you want to __build your project__, go to your project directory and issue the `mvn clean install -Pbuild-jar` command. You will __find a jar__ that runs on every Flink cluster in __target/your-artifact-id-1.0-SNAPSHOT.jar__. There is also a fat-jar,  __target/your-artifact-id-1.0-SNAPSHOT-flink-fat-jar.jar__. This
 also contains all dependencies that get added to the maven project.
 
 ## Next Steps

http://git-wip-us.apache.org/repos/asf/flink/blob/5cde1e94/docs/scala_api_quickstart.md
----------------------------------------------------------------------
diff --git a/docs/scala_api_quickstart.md b/docs/scala_api_quickstart.md
index 2472aa9..02e8ae1 100644
--- a/docs/scala_api_quickstart.md
+++ b/docs/scala_api_quickstart.md
@@ -78,7 +78,7 @@ The IntelliJ IDE also supports Maven and offers a plugin for Scala development.
 
 ## Build Project
 
-If you want to __build your project__, go to your project directory and issue the`mvn clean package` command. You will __find a jar__ that runs on every Flink cluster in __target/your-artifact-id-1.0-SNAPSHOT.jar__. There is also a fat-jar,  __target/your-artifact-id-1.0-SNAPSHOT-flink-fat-jar.jar__. This
+If you want to __build your project__, go to your project directory and issue the `mvn clean install -Pbuild-jar` command. You will __find a jar__ that runs on every Flink cluster in __target/your-artifact-id-1.0-SNAPSHOT.jar__. There is also a fat-jar,  __target/your-artifact-id-1.0-SNAPSHOT-flink-fat-jar.jar__. This
 also contains all dependencies that get added to the maven project.
 
 ## Next Steps

http://git-wip-us.apache.org/repos/asf/flink/blob/5cde1e94/flink-quickstart/flink-quickstart-java/src/main/resources/archetype-resources/pom.xml
----------------------------------------------------------------------
diff --git a/flink-quickstart/flink-quickstart-java/src/main/resources/archetype-resources/pom.xml b/flink-quickstart/flink-quickstart-java/src/main/resources/archetype-resources/pom.xml
index 19ac7a4..a650df7 100644
--- a/flink-quickstart/flink-quickstart-java/src/main/resources/archetype-resources/pom.xml
+++ b/flink-quickstart/flink-quickstart-java/src/main/resources/archetype-resources/pom.xml
@@ -25,7 +25,7 @@ under the License.
 	<version>${version}</version>
 	<packaging>jar</packaging>
 
-	<name>Your Job's Name</name>
+	<name>Flink Quickstart Job</name>
 	<url>http://www.myorganization.org</url>
 
 	<properties>
@@ -46,8 +46,20 @@ under the License.
 		</repository>
 	</repositories>
 	
-	<!-- These two requirements are the minimum to use and develop Flink. 
-		You can add others like <artifactId>flink-scala</artifactId> for Scala! -->
+	<!-- 
+		
+		Execute
+			mvn clean install -Pbuild-jar
+		to build a jar file out of this project!
+		How to use the Flink Quickstart pom:
+		a) Adding new dependencies:
+			You can add dependencies to the list below.
+			Please check if the maven-shade-plugin below is filtering out your dependency and remove the exclude from there.
+		b) Build a jar for running on the cluster:
+			There are two options for creating a jar from this project
+			b.1) "mvn clean install" -> this will create a fat jar which contains all dependencies necessary for running the jar created by this pom in a cluster. The "maven-shade-plugin" excludes everything that is provided on a running Flink cluster.
+			b.2) "mvn clean install -Pbuild-jar" -> This will also create a fat-jar, but with much nicer dependency exclusion handling. This approach is preferred and leads to much cleaner jar files.
+	-->
 	<dependencies>
 		<dependency>
 			<groupId>org.apache.flink</groupId>
@@ -73,30 +85,121 @@ under the License.
 
 	<build>
 		<plugins>
-		
-			<!-- We use the maven-assembly plugin to create a fat jar that contains all dependencies
+			<!-- We use the maven-shade plugin to create a fat jar that contains all dependencies
 			except flink and it's transitive dependencies. The resulting fat-jar can be executed
 			on a cluster. Change the value of Program-Class if your program entry point changes. -->
 			<plugin>
-				<artifactId>maven-assembly-plugin</artifactId>
-				<version>2.4.1</version>
-				<configuration>
-					<descriptors>
-						<descriptor>src/assembly/flink-fat-jar.xml</descriptor>
-					</descriptors>
-					<archive>
-						<manifest>
-							<mainClass>${package}.Job</mainClass>
-						</manifest>
-					</archive>
-				</configuration>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-shade-plugin</artifactId>
+				<version>2.3</version>
 				<executions>
+					<!-- Run shade goal on package phase -->
 					<execution>
-						<id>make-assembly</id>
 						<phase>package</phase>
 						<goals>
-							<goal>single</goal>
+							<goal>shade</goal>
 						</goals>
+						<configuration>
+							<artifactSet>
+								<excludes>
+									<!-- This list contains all dependencies of flink-dist
+									Everything else will be packaged into the fat-jar
+									-->
+									<exclude>org.apache.flink:flink-shaded</exclude>
+									<exclude>org.apache.flink:flink-core</exclude>
+									<exclude>org.apache.flink:flink-java</exclude>
+									<exclude>org.apache.flink:flink-scala</exclude>
+									<exclude>org.apache.flink:flink-runtime</exclude>
+									<exclude>org.apache.flink:flink-compiler</exclude>
+									<exclude>org.apache.flink:flink-spargel</exclude>
+									<exclude>org.apache.flink:flink-avro</exclude>
+									<exclude>org.apache.flink:flink-java-examples</exclude>
+									<exclude>org.apache.flink:flink-scala-examples</exclude>
+									<exclude>org.apache.flink:flink-streaming-examples</exclude>
+									<exclude>org.apache.flink:flink-streaming-core</exclude>
+									<!-- Also exclude very big transitive dependencies of Flink
+									WARNING: You have to remove these excludes if your code relies on other
+									versions of these dependencies.
+									-->
+									<exclude>org.scala-lang:scala-library</exclude>
+									<exclude>com.amazonaws:aws-java-sdk</exclude>
+									<exclude>io.netty:netty-all</exclude>
+									<exclude>com.typesafe.akka:akka-actor_2.10</exclude>
+									<exclude>com.typesafe.akka:akka-remote_2.10</exclude>
+									<exclude>io.netty:netty</exclude>
+									<exclude>com.typesafe.akka:akka-slf4j_2.10</exclude>
+									<exclude>org.eclipse.jetty:jetty-server</exclude>
+									<exclude>org.eclipse.jetty:jetty-continuation</exclude>
+									<exclude>org.eclipse.jetty:jetty-http</exclude>
+									<exclude>org.eclipse.jetty:jetty-io</exclude>
+									<exclude>org.eclipse.jetty:jetty-util</exclude>
+									<exclude>org.eclipse.jetty:jetty-security</exclude>
+									<exclude>org.eclipse.jetty:jetty-servlet</exclude>
+									<exclude>commons-fileupload:commons-fileupload</exclude>
+									<exclude>org.apache.avro:avro</exclude>
+									<exclude>commons-collections:commons-collections</exclude>
+									<exclude>org.codehaus.jackson:jackson-core-asl</exclude>
+									<exclude>org.codehaus.jackson:jackson-mapper-asl</exclude>
+									<exclude>com.thoughtworks.paranamer:paranamer</exclude>
+									<exclude>org.xerial.snappy:snappy-java</exclude>
+									<exclude>org.apache.commons:commons-compress</exclude>
+									<exclude>org.tukaani:xz</exclude>
+									<exclude>com.esotericsoftware.kryo:kryo</exclude>
+									<exclude>com.esotericsoftware.minlog:minlog</exclude>
+									<exclude>org.objenesis:objenesis</exclude>
+									<exclude>com.twitter:chill_2.10</exclude>
+									<exclude>com.twitter:chill-java</exclude>
+									<exclude>com.twitter:chill-avro_2.10</exclude>
+									<exclude>com.twitter:chill-bijection_2.10</exclude>
+									<exclude>com.twitter:bijection-core_2.10</exclude>
+									<exclude>com.twitter:bijection-avro_2.10</exclude>
+									<exclude>com.twitter:chill-protobuf</exclude>
+									<exclude>com.google.protobuf:protobuf-java</exclude>
+									<exclude>com.twitter:chill-thrift</exclude>
+									<exclude>org.apache.thrift:libthrift</exclude>
+									<exclude>commons-lang:commons-lang</exclude>
+									<exclude>junit:junit</exclude>
+									<exclude>de.javakaffee:kryo-serializers</exclude>
+									<exclude>joda-time:joda-time</exclude>
+									<exclude>org.apache.commons:commons-lang3</exclude>
+									<exclude>org.slf4j:slf4j-api</exclude>
+									<exclude>org.slf4j:slf4j-log4j12</exclude>
+									<exclude>log4j:log4j</exclude>
+									<exclude>org.apache.commons:commons-math</exclude>
+									<exclude>org.apache.sling:org.apache.sling.commons.json</exclude>
+									<exclude>commons-logging:commons-logging</exclude>
+									<exclude>org.apache.httpcomponents:httpclient</exclude>
+									<exclude>org.apache.httpcomponents:httpcore</exclude>
+									<exclude>commons-codec:commons-codec</exclude>
+									<exclude>com.fasterxml.jackson.core:jackson-core</exclude>
+									<exclude>com.fasterxml.jackson.core:jackson-databind</exclude>
+									<exclude>com.fasterxml.jackson.core:jackson-annotations</exclude>
+									<exclude>org.codehaus.jettison:jettison</exclude>
+									<exclude>stax:stax-api</exclude>
+									<exclude>com.typesafe:config</exclude>
+									<exclude>org.uncommons.maths:uncommons-maths</exclude>
+									<exclude>com.github.scopt:scopt_2.10</exclude>
+									<exclude>org.mortbay.jetty:servlet-api</exclude>
+									<exclude>commons-io:commons-io</exclude>
+									<exclude>commons-cli:commons-cli</exclude>
+								</excludes>
+							</artifactSet>
+							<filters>
+								<filter>
+									<artifact>org.apache.flink:*</artifact>
+									<excludes>
+										<exclude>org/apache/flink/shaded/**</exclude>
+										<exclude>web-docs/**</exclude>
+									</excludes>
+								</filter>
+							</filters>
+							<transformers>
+								<!-- add Main-Class to manifest file -->
+								<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
+									<mainClass>${package}.Job</mainClass>
+								</transformer>
+							</transformers>
+						</configuration>
 					</execution>
 				</executions>
 			</plugin>
@@ -105,6 +208,7 @@ under the License.
 			<plugin>
 				<groupId>org.apache.maven.plugins</groupId>
 				<artifactId>maven-jar-plugin</artifactId>
+				<version>2.5</version>
 				<configuration>
 					<archive>
 						<manifestEntries>
@@ -188,4 +292,34 @@ under the License.
 		-->
 		
 	</build>
-</project>
+	<profiles>
+		<profile>
+			<!-- A profile that does everyting correctly:
+			We set the Flink dependencies to provided -->
+			<id>build-jar</id>
+			<activation>
+				<activeByDefault>false</activeByDefault>
+			</activation>
+			<dependencies>
+				<dependency>
+					<groupId>org.apache.flink</groupId>
+					<artifactId>flink-java</artifactId>
+					<version>0.8-SNAPSHOT</version>
+					<scope>provided</scope>
+				</dependency>
+				<dependency>
+					<groupId>org.apache.flink</groupId>
+					<artifactId>flink-streaming-core</artifactId>
+					<version>0.8-SNAPSHOT</version>
+					<scope>provided</scope>
+				</dependency>
+				<dependency>
+					<groupId>org.apache.flink</groupId>
+					<artifactId>flink-clients</artifactId>
+					<version>0.8-SNAPSHOT</version>
+					<scope>provided</scope>
+				</dependency>
+			</dependencies>
+		</profile>
+	</profiles>
+</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flink/blob/5cde1e94/flink-quickstart/flink-quickstart-java/src/main/resources/archetype-resources/src/assembly/flink-fat-jar.xml
----------------------------------------------------------------------
diff --git a/flink-quickstart/flink-quickstart-java/src/main/resources/archetype-resources/src/assembly/flink-fat-jar.xml b/flink-quickstart/flink-quickstart-java/src/main/resources/archetype-resources/src/assembly/flink-fat-jar.xml
deleted file mode 100644
index 2819b81..0000000
--- a/flink-quickstart/flink-quickstart-java/src/main/resources/archetype-resources/src/assembly/flink-fat-jar.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements.  See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership.  The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License.  You may obtain a copy of the License at
-  ~
-  ~ http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-
-<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
-          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
-	<id>flink-fat-jar</id>
-	<formats>
-		<format>jar</format>
-	</formats>
-	<includeBaseDirectory>false</includeBaseDirectory>
-	<dependencySets>
-		<dependencySet>
-			<outputDirectory>/</outputDirectory>
-			<useProjectArtifact>true</useProjectArtifact>
-			<excludes>
-				<exclude>org.apache.flink:*</exclude>
-			</excludes>
-			<useTransitiveFiltering>true</useTransitiveFiltering>
-			<unpack>true</unpack>
-			<scope>runtime</scope>
-		</dependencySet>
-	</dependencySets>
-</assembly>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flink/blob/5cde1e94/flink-quickstart/flink-quickstart-scala/src/main/resources/archetype-resources/pom.xml
----------------------------------------------------------------------
diff --git a/flink-quickstart/flink-quickstart-scala/src/main/resources/archetype-resources/pom.xml b/flink-quickstart/flink-quickstart-scala/src/main/resources/archetype-resources/pom.xml
index 2356712..22cd797 100644
--- a/flink-quickstart/flink-quickstart-scala/src/main/resources/archetype-resources/pom.xml
+++ b/flink-quickstart/flink-quickstart-scala/src/main/resources/archetype-resources/pom.xml
@@ -26,7 +26,7 @@ under the License.
 	<version>${version}</version>
 	<packaging>jar</packaging>
 
-	<name>Your Job's Name</name>
+	<name>Flink Quickstart Job</name>
 	<url>http://www.myorganization.org</url>
 
 	<repositories>
@@ -47,7 +47,20 @@ under the License.
 		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 	</properties>
 
-	<!--  These two requirements are the minimum to use and develop Flink. -->
+	<!-- 
+		
+		Execute
+			mvn clean install -Pbuild-jar
+		to build a jar file out of this project!
+		How to use the Flink Quickstart pom:
+		a) Adding new dependencies:
+			You can add dependencies to the list below.
+			Please check if the maven-shade-plugin below is filtering out your dependency and remove the exclude from there.
+		b) Build a jar for running on the cluster:
+			There are two options for creating a jar from this project
+			b.1) "mvn clean install" -> this will create a fat jar which contains all dependencies necessary for running the jar created by this pom in a cluster. The "maven-shade-plugin" excludes everything that is provided on a running Flink cluster.
+			b.2) "mvn clean install -Pbuild-jar" -> This will also create a fat-jar, but with much nicer dependency exclusion handling. This approach is preferred and leads to much cleaner jar files.
+	-->
 	<dependencies>
 		<dependency>
 			<groupId>org.apache.flink</groupId>
@@ -66,31 +79,123 @@ under the License.
 		</dependency>
 	</dependencies>
 
-	<!-- We use the maven-assembly plugin to create a fat jar that contains all dependencies
-		except flink and it's transitive dependencies. The resulting fat-jar can be executed
-		on a cluster. Change the value of Program-Class if your program entry point changes. -->
 	<build>
 		<plugins>
+			<!-- We use the maven-shade plugin to create a fat jar that contains all dependencies
+			except flink and it's transitive dependencies. The resulting fat-jar can be executed
+			on a cluster. Change the value of Program-Class if your program entry point changes. -->
 			<plugin>
-				<artifactId>maven-assembly-plugin</artifactId>
-				<version>2.4.1</version>
-				<configuration>
-					<descriptors>
-						<descriptor>src/assembly/flink-fat-jar.xml</descriptor>
-					</descriptors>
-					<archive>
-						<manifestEntries>
-							<Program-Class>${package}.Job</Program-Class>
-						</manifestEntries>
-					</archive>
-				</configuration>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-shade-plugin</artifactId>
+				<version>2.3</version>
 				<executions>
+					<!-- Run shade goal on package phase -->
 					<execution>
-						<id>make-assembly</id>
 						<phase>package</phase>
 						<goals>
-							<goal>single</goal>
+							<goal>shade</goal>
 						</goals>
+						<configuration>
+							<artifactSet>
+								<excludes>
+									<!-- This list contains all dependencies of flink-dist
+									Everything else will be packaged into the fat-jar
+									-->
+									<exclude>org.apache.flink:flink-shaded</exclude>
+									<exclude>org.apache.flink:flink-core</exclude>
+									<exclude>org.apache.flink:flink-java</exclude>
+									<exclude>org.apache.flink:flink-scala</exclude>
+									<exclude>org.apache.flink:flink-runtime</exclude>
+									<exclude>org.apache.flink:flink-compiler</exclude>
+									<exclude>org.apache.flink:flink-spargel</exclude>
+									<exclude>org.apache.flink:flink-avro</exclude>
+									<exclude>org.apache.flink:flink-java-examples</exclude>
+									<exclude>org.apache.flink:flink-scala-examples</exclude>
+									<exclude>org.apache.flink:flink-streaming-examples</exclude>
+									<exclude>org.apache.flink:flink-streaming-core</exclude>
+									<!-- Also exclude very big transitive dependencies of Flink
+									WARNING: You have to remove these excludes if your code relies on other
+									versions of these dependencies.
+									-->
+									<exclude>org.scala-lang:scala-library</exclude>
+									<exclude>com.amazonaws:aws-java-sdk</exclude>
+									<exclude>io.netty:netty-all</exclude>
+									<exclude>com.typesafe.akka:akka-actor_2.10</exclude>
+									<exclude>com.typesafe.akka:akka-remote_2.10</exclude>
+									<exclude>io.netty:netty</exclude>
+									<exclude>com.typesafe.akka:akka-slf4j_2.10</exclude>
+									<exclude>org.eclipse.jetty:jetty-server</exclude>
+									<exclude>org.eclipse.jetty:jetty-continuation</exclude>
+									<exclude>org.eclipse.jetty:jetty-http</exclude>
+									<exclude>org.eclipse.jetty:jetty-io</exclude>
+									<exclude>org.eclipse.jetty:jetty-util</exclude>
+									<exclude>org.eclipse.jetty:jetty-security</exclude>
+									<exclude>org.eclipse.jetty:jetty-servlet</exclude>
+									<exclude>commons-fileupload:commons-fileupload</exclude>
+									<exclude>org.apache.avro:avro</exclude>
+									<exclude>commons-collections:commons-collections</exclude>
+									<exclude>org.codehaus.jackson:jackson-core-asl</exclude>
+									<exclude>org.codehaus.jackson:jackson-mapper-asl</exclude>
+									<exclude>com.thoughtworks.paranamer:paranamer</exclude>
+									<exclude>org.xerial.snappy:snappy-java</exclude>
+									<exclude>org.apache.commons:commons-compress</exclude>
+									<exclude>org.tukaani:xz</exclude>
+									<exclude>com.esotericsoftware.kryo:kryo</exclude>
+									<exclude>com.esotericsoftware.minlog:minlog</exclude>
+									<exclude>org.objenesis:objenesis</exclude>
+									<exclude>com.twitter:chill_2.10</exclude>
+									<exclude>com.twitter:chill-java</exclude>
+									<exclude>com.twitter:chill-avro_2.10</exclude>
+									<exclude>com.twitter:chill-bijection_2.10</exclude>
+									<exclude>com.twitter:bijection-core_2.10</exclude>
+									<exclude>com.twitter:bijection-avro_2.10</exclude>
+									<exclude>com.twitter:chill-protobuf</exclude>
+									<exclude>com.google.protobuf:protobuf-java</exclude>
+									<exclude>com.twitter:chill-thrift</exclude>
+									<exclude>org.apache.thrift:libthrift</exclude>
+									<exclude>commons-lang:commons-lang</exclude>
+									<exclude>junit:junit</exclude>
+									<exclude>de.javakaffee:kryo-serializers</exclude>
+									<exclude>joda-time:joda-time</exclude>
+									<exclude>org.apache.commons:commons-lang3</exclude>
+									<exclude>org.slf4j:slf4j-api</exclude>
+									<exclude>org.slf4j:slf4j-log4j12</exclude>
+									<exclude>log4j:log4j</exclude>
+									<exclude>org.apache.commons:commons-math</exclude>
+									<exclude>org.apache.sling:org.apache.sling.commons.json</exclude>
+									<exclude>commons-logging:commons-logging</exclude>
+									<exclude>org.apache.httpcomponents:httpclient</exclude>
+									<exclude>org.apache.httpcomponents:httpcore</exclude>
+									<exclude>commons-codec:commons-codec</exclude>
+									<exclude>com.fasterxml.jackson.core:jackson-core</exclude>
+									<exclude>com.fasterxml.jackson.core:jackson-databind</exclude>
+									<exclude>com.fasterxml.jackson.core:jackson-annotations</exclude>
+									<exclude>org.codehaus.jettison:jettison</exclude>
+									<exclude>stax:stax-api</exclude>
+									<exclude>com.typesafe:config</exclude>
+									<exclude>org.uncommons.maths:uncommons-maths</exclude>
+									<exclude>com.github.scopt:scopt_2.10</exclude>
+									<exclude>org.mortbay.jetty:servlet-api</exclude>
+									<exclude>commons-io:commons-io</exclude>
+									<exclude>commons-cli:commons-cli</exclude>
+								</excludes>
+							</artifactSet>
+							<filters>
+								<filter>
+									<artifact>org.apache.flink:*</artifact>
+									<excludes>
+										<exclude>org/apache/flink/shaded/**</exclude>
+										<exclude>web-docs/**</exclude>
+									</excludes>
+								</filter>
+							</filters>
+							<transformers>
+								<!-- add Main-Class to manifest file -->
+								<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
+									<mainClass>${package}.Job</mainClass>
+								</transformer>
+							</transformers>
+						</configuration>
 					</execution>
 				</executions>
 			</plugin>
@@ -185,4 +290,34 @@ under the License.
 			</plugin>
 		</plugins>
 	</build>
-</project>
+	<profiles>
+		<profile>
+			<!-- A profile that does everyting correctly:
+			We set the Flink dependencies to provided -->
+			<id>build-jar</id>
+			<activation>
+				<activeByDefault>false</activeByDefault>
+			</activation>
+			<dependencies>
+				<dependency>
+					<groupId>org.apache.flink</groupId>
+					<artifactId>flink-scala</artifactId>
+					<version>0.8-SNAPSHOT</version>
+					<scope>provided</scope>
+				</dependency>
+				<dependency>
+					<groupId>org.apache.flink</groupId>
+					<artifactId>flink-streaming-core</artifactId>
+					<version>0.8-SNAPSHOT</version>
+					<scope>provided</scope>
+				</dependency>
+				<dependency>
+					<groupId>org.apache.flink</groupId>
+					<artifactId>flink-clients</artifactId>
+					<version>0.8-SNAPSHOT</version>
+					<scope>provided</scope>
+				</dependency>
+			</dependencies>
+		</profile>
+	</profiles>
+</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flink/blob/5cde1e94/flink-quickstart/flink-quickstart-scala/src/main/resources/archetype-resources/src/assembly/flink-fat-jar.xml
----------------------------------------------------------------------
diff --git a/flink-quickstart/flink-quickstart-scala/src/main/resources/archetype-resources/src/assembly/flink-fat-jar.xml b/flink-quickstart/flink-quickstart-scala/src/main/resources/archetype-resources/src/assembly/flink-fat-jar.xml
deleted file mode 100644
index 2819b81..0000000
--- a/flink-quickstart/flink-quickstart-scala/src/main/resources/archetype-resources/src/assembly/flink-fat-jar.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements.  See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership.  The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License.  You may obtain a copy of the License at
-  ~
-  ~ http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-
-<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
-          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
-	<id>flink-fat-jar</id>
-	<formats>
-		<format>jar</format>
-	</formats>
-	<includeBaseDirectory>false</includeBaseDirectory>
-	<dependencySets>
-		<dependencySet>
-			<outputDirectory>/</outputDirectory>
-			<useProjectArtifact>true</useProjectArtifact>
-			<excludes>
-				<exclude>org.apache.flink:*</exclude>
-			</excludes>
-			<useTransitiveFiltering>true</useTransitiveFiltering>
-			<unpack>true</unpack>
-			<scope>runtime</scope>
-		</dependencySet>
-	</dependencySets>
-</assembly>
\ No newline at end of file