创建一个scala的maven项目

1 创建Maven工程

 <groupId>org.apache.spark</groupId>
    <artifactId>spark-core_2.11</artifactId>
    <version>1.6.2</version>

GroupId,可以理解为用来标志你整个项目组的,或者你这些代码属于某一个完整的项目,比如上面的org.apache.spark就可以非常好的来标志Apache的Spark这个项目了。一般来说可以使用倒序的公司网址来作为GroupId,这可以类比为,沿袭了Java项目中使用倒序公司网址来作为Package名称的一个惯例。

ArtifactId,一般是用来在整个项目组来标志本项目的,相比GroupId的范围,其概念要稍微小一些,比如spark-core_2.11就非常好的表示出了本项目主要是关于Spark的核心基础组件的,从而能够与Spark其他各种组件或架构很好的区分开来。

Version,正如字面意思,就是本项目的迭代版本的信息,如上面的1.6.2.

现在,比如你的公司名称叫做abc,然后你的项目组叫做test,那就可以使用com.abc.test来作为GroupId,然后将ArtifactId取做myFirstProject,版本号就使用它默认的就好了(当然,如果你的项目以后有迭代更新版本的话,这个是需要按照实际情况进行改动的)。这三个字段设置完毕后,点击Next,来到项目名称设置页面,一般可以和ArtifactId字段保持一致,当然也可以不一致,这个只是为了给本项目取个名字而已。

整个流程如下面的Gif动图所示。


2 属于你的"Hello World!"

在上一步中,我们已经创建了一个Maven工程,不出意外的话,这个时候会打开这个项目,并且首先映入眼帘的将是项目的 pom.xml 文件(暂时不清楚的不要紧,后面会讲到),细心如你,一定可以惊奇的发现 pom 文件中居然有我们刚才设置的 GroupId, ArtifactIdVersion 这些信息(如下),这些信息相当于就给了本项目一个唯一的标识符,有了这个标识符,别人将会在浩如烟海的Maven仓库中,一眼识别到你(本段话有装B嫌疑,不懂的话请暂时忽略)。

  <groupId>com.abc.test</groupId>
    <artifactId>myFirstProject</artifactId>
    <version>1.0-SNAPSHOT</version>

在这个Maven项目中创建一个属于自己的Scala程序了,开始之前,为了给Scala营造一个顺利的环境,有几件事需要先做。下面我将分点罗列如下:

首先,为了让你的首次体验Scala更清爽一些,将一些暂时无关的文件和文件夹都勇敢的删除掉吧,主要有 main\java, main\resourcestest 这三个;

将Scala的框架添加到这个项目中,方法是在左侧栏中的项目名称上右键菜单中点击Add Framework Support...,然后在打开的对话框左侧边栏中,勾选Scala前面的复选框,然后点击确定即可(前提是上文中所述步骤都已正确走通,否则你很有可能看不到Scala这个选项的);

在main文件夹中建立一个名为 scala 的文件夹,并右键点击 scala 文件夹,选择 Make Directory as,然后选择Sources Root ,这里主要意思是将 scala 文件夹标记为一个源文件的根目录,然后在其内的所有代码中的 package ,其路径就从这个根目录下开始算起。举个例子,假如你在 scala 文件夹中建立了一个程序,这个程序的 package 属性为 com.abc.test,那么这个程序就一定要保存在 scala\com\abc\test 目录下,否则项目就找不到这个程序了;

在已经标记好为源文件根目录的 scala 文件夹 上,右键选择 New,然后选择 Scala Class,随后设置好程序的名称,并且记得将其设置为一个 Object(类似于Java中含有静态成员的静态类),正常的话,将会打开这个 Object 代码界面,并且可以看到IntelliJ IDEA自动添加了一些最基本的信息;

在创建的 Object 中输入如下语句:

def main(args: Array[String]):Unit = {
  println("Hello World!")
}

在程序界面的任意位置,右键单击后选择 Run '你的程序名称',静待程序的编译和运行,然后在下方自动打开的窗口中,你就可以看到振奋人心的 Hello World!了。

整个流程的Gif动图:

猜你喜欢

转载自blog.csdn.net/weixin_42201566/article/details/85796527