总共分为四步
程序依赖环境:JDK 1.8、IDEA 2020.1、Scala 2.13.3、Maven 3.6.3
第一步,新建Scala的Maven工程
在New Project界面的左侧选择Maven,右侧的Project SDK会自动选择JDK,将Create from archetype 左侧的框选中,打上√,然后选择org.scala-tools.archetypr:scala-archetype-simple,点击Next;
在弹出的窗口中输入工程名称,工程保存的位置,以及GroupId、ArtifactId和Version。
然后选择Maven安装的路径、配置文件和respository库路径;
第二步,在工程界面修改pom.xml文件
首先,在pom.xml文件中将scala.version换为自己本地安装好的scala版本2.13.3
然后,将pom.xml文件中的 部分删除,如下图所示:
最后,将maven-eclipse-plugin那部分也删除掉
第三步,打开Add Framewok Support,添加Scala SDK开发环境支持
在Add Framewok Support窗口界面,选择Scala,右侧use library选择本地安装好的Scala
第四步,打开工程目录,删除工程自动创建的类然后新建自己的类
找到目录下的src->test->里面的AppTest 和MySpec类删掉即可,
然后在src->main里面新建包,新建类(如果还报错则需要关闭工程后重新打开即可)
// Testmyscala.scala中的代码如下
package org.example
object Testmyscala
{
def main(args: Array[String]): Unit =
{
val lines = List("hello java hello python","hello scala","hello scala hello java hello scala")
// 切分并压平
val words = lines.flatMap(_.split(" "))
// 把每个单词生成一个一个的pair
val tuples = words.map((_,1))
// 以key(单词)进行分组
val grouped = tuples.groupBy(_._1)
// 统计value长度
val sumed = grouped.mapValues(_.size)
// 排序
val sorted = sumed.toList.sortBy(_._2)
// 降序排列
val result = sorted.reverse
println(result)
}
}
接下来,在IDEA界面上方找到Build->Build Module或Project都可以,。
最后在Testmyscala.scala界面右键选择Run即可运行Scala程序。
第六步,将类打成jar包
首先需要在pom.xml文件中build下添加如下plugin:
<build>
<sourceDirectory>src/main/scala</sourceDirectory>
<testSourceDirectory>src/test/scala</testSourceDirectory>
<plugins>
<plugin>
<groupId>org.scala-tools</groupId>
<artifactId>maven-scala-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
<configuration>
<scalaVersion>${scala.version}</scalaVersion>
</configuration>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.3</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.4.3</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></mainClass>
</transformer>
</transformers>
<createDependencyReducedPom>false</createDependencyReducedPom>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<defaultGoal>compile</defaultGoal>
</build>
然后修改pom.xml文件中plugin里,如下图所示:
将<mainClass></mainClass>添加为<mainClass>org.example.Testmyscala</mainClass>
IDEA中打成jar包的方式有多种,这里介绍其中的两种: 方式一:IDEA自带的File->Project Structure界面中Build Artifacts
下图中,注意选择主清单文件MANIFEST.MF的路径为src下,**不要选择src\main下**
在IDEA界面上方找到Build->Build Artifacts,
在Build Artifact界面选择MyScala.jar,在弹出的Action界面选择Build;
最后我们所打包的jar包就会在out目录下生成。
在项目的out文件夹中用cmd窗口执行JAVA的jar包程序,测试后成功。
方式二:用Maven插件maven-shade-plugin打包,在IDEA窗口右侧找到隐藏的Maven打开其中的lifecycle,首先点击Clean,然后点击Package即可,打好的jar包就会在target目录下生成。
在项目的target文件夹中执行JAVA的jar包程序,测试后运行成功。