intellij idea 打Scala jar包及执行
分两大块:
一、IDEA打可执行jar包
二、IDEA maven打可执行jar包
一、IDEA打可执行jar包
1.先创建IDEA的Scala project
File-->New-->Project-->Java-->Scala ,选择Project SDK:jave包,Use library:scala sdk-->next-->填写项目名称和项目存放地址-->Finish
2.配置打jar包
File-->Project Structure-->Project Settings-->Artifacts--> 点击+--->JAR-->From modules...-->选择Main class-->OK
-主函数包同路径下会产生一个META-INF文件夹;
Build-->Build Artifact-->Build
-项目路径下会产生一个out文件夹:jar包就在这个文件夹下面的artifacts文件夹里面
3.命令行上执行jar包
在jar包所在的文件夹目录下,执行 java -jar jar_name.jar
二、IDEA maven打可执行jar包
1.创建并配置maven工程
例如,创建以Scala语言为基础的maven工程
File-->New-->Project-->Maven-->选中Create from archetype,在列表中寻找并选中org.scala-tools.archetypes:scala-archetype-simple-->Next-->填写GroupID,ArtifactID-->Next-->修改Maven home directory,本地存在的maven地址-->Next-->填写项目名称和项目地址-->Finish
会自动生成pom.xml文件,根据项目需要修改pom.xml文件。
2.需要在pom.xml文件中添加maven打可执行jar包的插件-将maven依赖的包一起打包进jar包
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.5.5</version> <configuration> <archive> <manifest> <mainClass>com.testscalajar.StreamingTest</mainClass> </manifest> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> |
点击lifecycle-->package打包生成jar文件,需要先删除生成过的目标文件夹,点击lifecycle-->clean.
在target 文件夹下面生成了 jarname-1.0-SNAPSHOT-jar-with-dependencies.jar 文件
接着命令行执行 java -jar jarname-1.0-SNAPSHOT-jar-with-dependencies.jar 会报错:找不到或无法加载主类
这是由于maven默认只编译Java文件,不会编译Scala文件,但是maven提供了能够编译Scala的类库,因此再次改进pom.xml,加入maven用来编译Scala的插件:
<plugin> <groupId>org.scala-tools</groupId> <artifactId>maven-scala-plugin</artifactId> <version>2.15.2</version> <executions> <execution> <goals> <goal>compile</goal> <goal>testCompile</goal> </goals> </execution> </executions> </plugin> |
然后删除target 下所有文件再次点击package 进行打包.
再次执行 java -jar 命令 程序 正常执行!!