IDEA 新建Maven项目同时支持Java和Scala两种语言

前言

之前用Eclipse+sbt+Scala,sbt 不支持Java,如果项目里包含Java文件打包会报错,现在有同时用Java和Scala的需求,比如写一个Java的类,用Scala去调用,所以改用Maven,第一次用,将过程记录下来。

首先安装Scala插件

IDEA 新建Maven项目同时支持Java和Scala两种语言_第1张图片

然后新建一个maven project

IDEA 新建Maven项目同时支持Java和Scala两种语言_第2张图片
建好之后,配一下maven 如图:

IDEA 新建Maven项目同时支持Java和Scala两种语言_第3张图片

这个时候是不能使用Scala的,如图
IDEA 新建Maven项目同时支持Java和Scala两种语言_第4张图片

配置 Project Structure

File=>Project Structure=>Libraries=>+=>Scala SDK=>选择一个Scala…
如图:
IDEA 新建Maven项目同时支持Java和Scala两种语言_第5张图片

这时候就可以使用Scala了,创建一个测试类,运行测试
IDEA 新建Maven项目同时支持Java和Scala两种语言_第6张图片

object TestScala {
     
  def main(args: Array[String]): Unit = {
     
    println("Test Scala")
  }
}

IDEA 新建Maven项目同时支持Java和Scala两种语言_第7张图片

新建scala文件夹

上面的scala是放在java包里,我们要单独建个scala的包
在src/main下面新建scala文件夹,然后右键=>Mark Directory as=>Sources Root,这样就可以在scala文件下新建类了,自己可以测试一下
IDEA 新建Maven项目同时支持Java和Scala两种语言_第8张图片

打包

到此,可以直接在idea里运行java和scala代码了,但是打的包里不包含scala的class文件(包含java的),还需要配置pom

pom


<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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0modelVersion>

    <groupId>com.dklgroupId>
    <artifactId>MavenJavaAndScalaartifactId>
    <version>1.0-SNAPSHOTversion>
    <properties>
        <maven.compiler.source.version>1.8maven.compiler.source.version>
        <maven.compiler.target.version>1.8maven.compiler.target.version>
        <encoding>UTF-8encoding>
        <scala.version>2.11.8scala.version>
        <scala.compat.version>2.11scala.compat.version>
    properties>
    <dependencies>
        <dependency>
            <groupId>org.scala-langgroupId>
            <artifactId>scala-libraryartifactId>
            <version>${scala.version}version>
        dependency>
        <dependency>
            <groupId>org.scala-langgroupId>
            <artifactId>scala-compilerartifactId>
            <version>${scala.version}version>
        dependency>
    dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.scala-toolsgroupId>
                <artifactId>maven-scala-pluginartifactId>
                <version>2.15.2version>
                <executions>
                    <execution>
                        <id>scala-compile-firstid>
                        <goals>
                            <goal>compilegoal>
                        goals>
                        <configuration>
                            <includes>
                                <include>**/*.scalainclude>
                            includes>
                        configuration>
                    execution>
                    <execution>
                        <id>scala-test-compileid>
                        <goals>
                            <goal>testCompilegoal>
                        goals>
                    execution>
                executions>
            plugin>
            <plugin>
                <groupId>org.apache.maven.pluginsgroupId>
                <artifactId>maven-compiler-pluginartifactId>
                <configuration>
                    <source>${maven.compiler.source.version}source>
                    <target>${maven.compiler.target.version}target>
                configuration>
            plugin>
            <plugin>
                <groupId>org.apache.maven.pluginsgroupId>
                <artifactId>maven-jar-pluginartifactId>
                <version>2.4version>
                
                <configuration>
                    
                    <archive>

                        
                        <addMavenDescriptor>falseaddMavenDescriptor>

                        
                        <manifest>
                            
                            <addClasspath>trueaddClasspath>
                            
                            <classpathPrefix>lib/classpathPrefix>
                        manifest>
                    archive>

                configuration>
            plugin>

        plugins>
    build>

project>

这样配置完成后再打包就可以看到scala的class了

打包后命令行测试

scala -classpath MavenJavaAndScala-1.0-SNAPSHOT.jar TestScala
Test Scala

git

https://github.com/dongkelun/MavenJavaAndScala

nJavaAndScala-1.0-SNAPSHOT.jar TestScala
Test Scala


## git
[https://github.com/dongkelun/MavenJavaAndScala](https://github.com/dongkelun/MavenJavaAndScala)





你可能感兴趣的:(scala,idea,java)