IDEA新建Scala+Maven工程步骤指南(2020.09.21)

总共分为四步

程序依赖环境: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包程序,测试后运行成功。

猜你喜欢

转载自blog.csdn.net/jing_zhong/article/details/108568660