Thanks the maven structure is identical to sbt. just sbt file I will have to replace with pom.xml
I will use your pom.xml to start with it. Cheers Dr Mich Talebzadeh LinkedIn * https://www.linkedin.com/profile/view?id=AAEAAAAWh2gBxianrbJd6zP6AcPCCdOABUrV8Pw <https://www.linkedin.com/profile/view?id=AAEAAAAWh2gBxianrbJd6zP6AcPCCdOABUrV8Pw>* http://talebzadehmich.wordpress.com On 15 March 2016 at 13:12, Chandeep Singh <c...@chandeep.com> wrote: > You can build using maven from the command line as well. > > This layout should give you an idea and here are some resources - > http://www.scala-lang.org/old/node/345 > > project/ > pom.xml - Defines the project > src/ > main/ > java/ - Contains all java code that will go in your final artifact. > See maven-compiler-plugin > <http://maven.apache.org/plugins/maven-compiler-plugin/> for details > scala/ - Contains all scala code that will go in your final > artifact. > See maven-scala-plugin > <http://scala-tools.org/mvnsites/maven-scala-plugin/> for details > resources/ - Contains all static files that should be available on > the classpath > in the final artifact. See maven-resources-plugin > <http://maven.apache.org/plugins/maven-resources-plugin/> for details > webapp/ - Contains all content for a web application (jsps, css, > images, etc.) > See maven-war-plugin > <http://maven.apache.org/plugins/maven-war-plugin/> for details > site/ - Contains all apt or xdoc files used to create a project website. > See maven-site-plugin > <http://maven.apache.org/plugins/maven-site-plugin/> for details > test/ > java/ - Contains all java code used for testing. > See maven-compiler-plugin > <http://maven.apache.org/plugins/maven-compiler-plugin/> for details > scala/ - Contains all scala code used for testing. > See maven-scala-plugin > <http://scala-tools.org/mvnsites/maven-scala-plugin/> for details > resources/ - Contains all static content that should be available on > the > classpath during testing. See maven-resources-plugin > <http://maven.apache.org/plugins/maven-resources-plugin/> for details > > > > On Mar 15, 2016, at 12:38 PM, Chandeep Singh <c...@chandeep.com> wrote: > > Do you have the Eclipse Maven plugin setup? http://www.eclipse.org/m2e/ > > Once you have it setup, File -> New -> Other -> MavenProject -> Next / > Finish. You’ll see a default POM.xml which you can modify / replace. > > <PastedGraphic-1.png> > > Here is some documentation that should help: > http://scala-ide.org/docs/tutorials/m2eclipse/ > > I’m using the same Eclipse build as you on my Mac. I mostly build a shaded > JAR and SCP it to the cluster. > > On Mar 15, 2016, at 12:22 PM, Mich Talebzadeh <mich.talebza...@gmail.com> > wrote: > > Great Chandeep. I also have Eclipse Scala IDE below > > scala IDE build of Eclipse SDK > Build id: 4.3.0-vfinal-2015-12-01T15:55:22Z-Typesafe > > I am no expert on Eclipse so if I create project called ImportCSV where do > I need to put the pom file or how do I reference it please. My Eclipse runs > on a Linux host so it cab access all the directories that sbt project > accesses? I also believe there will not be any need for external jar files > in builkd path? > > Thanks > > Dr Mich Talebzadeh > > > LinkedIn * > https://www.linkedin.com/profile/view?id=AAEAAAAWh2gBxianrbJd6zP6AcPCCdOABUrV8Pw > <https://www.linkedin.com/profile/view?id=AAEAAAAWh2gBxianrbJd6zP6AcPCCdOABUrV8Pw>* > > > http://talebzadehmich.wordpress.com > > > > On 15 March 2016 at 12:15, Chandeep Singh <c...@chandeep.com> wrote: > >> Btw, just to add to the confusion ;) I use Maven as well since I moved >> from Java to Scala but everyone I talk to has been recommending SBT for >> Scala. >> >> I use the Eclipse Scala IDE to build. http://scala-ide.org/ >> >> Here is my sample PoM. You can add dependancies based on your requirement. >> >> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=" >> http://www.w3.org/2001/XMLSchema-instance" >> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 >> http://maven.apache.org/maven-v4_0_0.xsd"> >> <modelVersion>4.0.0</modelVersion> >> <groupId>spark</groupId> >> <version>1.0</version> >> <name>${project.artifactId}</name> >> >> <properties> >> <maven.compiler.source>1.7</maven.compiler.source> >> <maven.compiler.target>1.7</maven.compiler.target> >> <encoding>UTF-8</encoding> >> <scala.version>2.10.4</scala.version> >> <maven-scala-plugin.version>2.15.2</maven-scala-plugin.version> >> </properties> >> >> <repositories> >> <repository> >> <id>cloudera-repo-releases</id> >> <url>https://repository.cloudera.com/artifactory/repo/</url> >> </repository> >> </repositories> >> >> <dependencies> >> <dependency> >> <groupId>org.scala-lang</groupId> >> <artifactId>scala-library</artifactId> >> <version>${scala.version}</version> >> </dependency> >> <dependency> >> <groupId>org.apache.spark</groupId> >> <artifactId>spark-core_2.10</artifactId> >> <version>1.5.0-cdh5.5.1</version> >> </dependency> >> <dependency> >> <groupId>org.apache.spark</groupId> >> <artifactId>spark-mllib_2.10</artifactId> >> <version>1.5.0-cdh5.5.1</version> >> </dependency> >> <dependency> >> <groupId>org.apache.spark</groupId> >> <artifactId>spark-hive_2.10</artifactId> >> <version>1.5.0</version> >> </dependency> >> >> </dependencies> >> <build> >> <sourceDirectory>src/main/scala</sourceDirectory> >> <testSourceDirectory>src/test/scala</testSourceDirectory> >> <plugins> >> <plugin> >> <groupId>org.scala-tools</groupId> >> <artifactId>maven-scala-plugin</artifactId> >> <version>${maven-scala-plugin.version}</version> >> <executions> >> <execution> >> <goals> >> <goal>compile</goal> >> <goal>testCompile</goal> >> </goals> >> </execution> >> </executions> >> <configuration> >> <jvmArgs> >> <jvmArg>-Xms64m</jvmArg> >> <jvmArg>-Xmx1024m</jvmArg> >> </jvmArgs> >> </configuration> >> </plugin> >> <plugin> >> <groupId>org.apache.maven.plugins</groupId> >> <artifactId>maven-shade-plugin</artifactId> >> <version>1.6</version> >> <executions> >> <execution> >> <phase>package</phase> >> <goals> >> <goal>shade</goal> >> </goals> >> <configuration> >> <filters> >> <filter> >> <artifact>*:*</artifact> >> <excludes> >> <exclude>META-INF/*.SF</exclude> >> <exclude>META-INF/*.DSA</exclude> >> <exclude>META-INF/*.RSA</exclude> >> </excludes> >> </filter> >> </filters> >> <transformers> >> <transformer >> >> implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> >> <mainClass>com.group.id.Launcher1</mainClass> >> </transformer> >> </transformers> >> </configuration> >> </execution> >> </executions> >> </plugin> >> </plugins> >> </build> >> >> <artifactId>scala</artifactId> >> </project> >> >> >> On Mar 15, 2016, at 12:09 PM, Mich Talebzadeh <mich.talebza...@gmail.com> >> wrote: >> >> Ok. >> >> Sounds like opinion is divided :) >> >> I will try to build a scala app with Maven. >> >> When I build with SBT I follow this directory structure >> >> High level directory the package name like >> >> ImportCSV >> >> under ImportCSV I have a directory src and the sbt file ImportCSV.sbt >> >> in directory src I have main and scala subdirectories. My scala file is in >> >> ImportCSV/src/main/scala >> >> called ImportCSV.scala >> >> I then have a shell script that runs everything under ImportCSV directory >> >> cat generic.ksh >> #!/bin/ksh >> >> #-------------------------------------------------------------------------------- >> # >> # Procedure: generic.ksh >> # >> # Description: Compiles and run scala app usinbg sbt and spark-submit >> # >> # Parameters: none >> # >> >> #-------------------------------------------------------------------------------- >> # Vers| Date | Who | DA | Description >> >> #-----+--------+-----+----+----------------------------------------------------- >> # 1.0 |04/03/15| MT | | Initial Version >> >> #-------------------------------------------------------------------------------- >> # >> function F_USAGE >> { >> echo "USAGE: ${1##*/} -A '<Application>'" >> echo "USAGE: ${1##*/} -H '<HELP>' -h '<HELP>'" >> exit 10 >> } >> # >> # Main Section >> # >> if [[ "${1}" = "-h" || "${1}" = "-H" ]]; then >> F_USAGE $0 >> fi >> ## MAP INPUT TO VARIABLES >> while getopts A: opt >> do >> case $opt in >> (A) APPLICATION="$OPTARG" ;; >> (*) F_USAGE $0 ;; >> esac >> done >> [[ -z ${APPLICATION} ]] && print "You must specify an application value " >> && F_USAGE $0 >> ENVFILE=/home/hduser/dba/bin/environment.ksh >> if [[ -f $ENVFILE ]] >> then >> . $ENVFILE >> . ~/spark_1.5.2_bin-hadoop2.6.kshrc >> else >> echo "Abort: $0 failed. No environment file ( $ENVFILE ) found" >> exit 1 >> fi >> ##FILE_NAME=`basename $0 .ksh` >> FILE_NAME=${APPLICATION} >> CLASS=`echo ${FILE_NAME}|tr "[:upper:]" "[:lower:]"` >> NOW="`date +%Y%m%d_%H%M`" >> LOG_FILE=${LOGDIR}/${FILE_NAME}.log >> [ -f ${LOG_FILE} ] && rm -f ${LOG_FILE} >> print "\n" `date` ", Started $0" | tee -a ${LOG_FILE} >> cd ../${FILE_NAME} >> print "Compiling ${FILE_NAME}" | tee -a ${LOG_FILE} >> sbt package >> print "Submiiting the job" | tee -a ${LOG_FILE} >> >> ${SPARK_HOME}/bin/spark-submit \ >> --packages com.databricks:spark-csv_2.11:1.3.0 \ >> --class "${FILE_NAME}" \ >> --master spark://50.140.197.217:7077 \ >> --executor-memory=12G \ >> --executor-cores=12 \ >> --num-executors=2 \ >> target/scala-2.10/${CLASS}_2.10-1.0.jar >> print `date` ", Finished $0" | tee -a ${LOG_FILE} >> exit >> >> >> So to run it for ImportCSV all I need is to do >> >> ./generic.ksh -A ImportCSV >> >> Now can anyone kindly give me a rough guideline on directory and location >> of pom.xml to make this work using maven? >> >> Thanks >> >> >> Dr Mich Talebzadeh >> >> >> LinkedIn * >> https://www.linkedin.com/profile/view?id=AAEAAAAWh2gBxianrbJd6zP6AcPCCdOABUrV8Pw >> <https://www.linkedin.com/profile/view?id=AAEAAAAWh2gBxianrbJd6zP6AcPCCdOABUrV8Pw>* >> >> >> http://talebzadehmich.wordpress.com >> >> >> >> On 15 March 2016 at 10:50, Sean Owen <so...@cloudera.com> wrote: >> >>> FWIW, I strongly prefer Maven over SBT even for Scala projects. The >>> Spark build of reference is Maven. >>> >>> On Tue, Mar 15, 2016 at 10:45 AM, Chandeep Singh <c...@chandeep.com> >>> wrote: >>> > For Scala, SBT is recommended. >>> > >>> > On Mar 15, 2016, at 10:42 AM, Mich Talebzadeh < >>> mich.talebza...@gmail.com> >>> > wrote: >>> > >>> > Hi, >>> > >>> > I build my Spark/Scala packages using SBT that works fine. I have >>> created >>> > generic shell scripts to build and submit it. >>> > >>> > Yesterday I noticed that some use Maven and Pom for this purpose. >>> > >>> > Which approach is recommended? >>> > >>> > Thanks, >>> > >>> > >>> > Dr Mich Talebzadeh >>> > >>> > >>> > >>> > LinkedIn >>> > >>> https://www.linkedin.com/profile/view?id=AAEAAAAWh2gBxianrbJd6zP6AcPCCdOABUrV8Pw >>> > >>> > >>> > >>> > http://talebzadehmich.wordpress.com >>> > >>> > >>> > >>> > >>> >> >> >> > > >