Maven scala和java混合打包方式

 更新时间:2023年06月13日 16:57:06   作者:sunzhengbo  
这篇文章主要介绍了Maven scala和java混合打包方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Maven scala和java混合打包

删除pom文件中的sourceDirectory和testSourceDirectory 两个标签

如果scala和java源码在同一个源目录下可以忽略,即不删除。

添加打包插件

1)java打包插件:

<!-- 这是个编译java代码的 -->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.0</version>
    <configuration>
        <source>6</source>
        <target>6</target>
        <encoding>UTF-8</encoding>
    </configuration>
    <executions>
        <execution>
            <phase>compile</phase>
            <goals>
                <goal>compile</goal>
            </goals>
        </execution>
    </executions>
</plugin>

2)scala打包插件:

<!-- 这是个编译scala代码的 -->
<plugin>
    <groupId>net.alchim31.maven</groupId>
    <artifactId>scala-maven-plugin</artifactId>
    <version>3.2.1</version>
    <executions>
        <execution>
            <id>scala-compile-first</id>
            <phase>process-resources</phase>
            <goals>
                <goal>add-source</goal>
                <goal>compile</goal>
            </goals>
        </execution>
    </executions>
</plugin>

3)将依赖也进行打包

<!--maven-assembly-plugin不能打包spring Framework框架的项目,可以使用maven-shade-plugin插件-->
<plugin>  
    <groupId>org.apache.maven.plugins</groupId>  
    <artifactId>maven-assembly-plugin</artifactId>  
    <version>2.5.5</version>  
    <configuration>  
        <archive>  
            <manifest>  
                <mainClass>com.xxg.Main</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>

4)自定义包名:

<!--在build的标签内输入finalName标签,标签的内容就是自定义的包名-->
<finalName>ROOT</finalName>

5)打包命令:

mvn clean package -DskipTests

scala和java方法的相互调用

在Scala中调用java的方法,很简单,直接导入传递参数就可以进行调用了。

但是在Java中调用Scala的方法呢?

经过测试,也是很简单,静态方法直接传递参数,就可以调用了,非静态的方法,使用对象也可以调用方法。

具体如下:

1.首先是静态方法

object ScalaObjectDemo extends  App {
    println("hello cc i miss you very much");
    def say(name:String){
        println(name)
    }
    /**
      * 先去调用java方法
      * @return
      */
    def say3(): Int ={
        println("这里是scala的方法了")
        var tmp=JavaDemo.say2("4");
        println(tmp);
        tmp
    }
}

2.JAVA中调用Scala的方法

public class JavaDemo {
    public static void main(String[] args) {
        ScalaObjectDemo.main(new String[]{});
        ScalaObjectDemo.say("cc ");
        //测试反复的方法调用
        int say3 = ScalaObjectDemo.say3();
        System.out.println(say3);
    }
    public static int say2(String age){
        System.out.println("这里是java的static 方法了"+age);
        return Integer.parseInt(age);
    }
}

3.Scala中的非静态方法

class ScalaClassDemo {
  def hi(name:String):Int={
    println(name)
    1
  }
}

4.Java中的调用

int zhaojun = new ScalaClassDemo().hi("cc");
System.out.println(zhaojun);

经过测试全部能正常运行。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java正则表达式之分组和替换方式

    Java正则表达式之分组和替换方式

    这篇文章主要介绍了Java正则表达式之分组和替换方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • Spark MLlib随机梯度下降法概述与实例

    Spark MLlib随机梯度下降法概述与实例

    这篇文章主要为大家详细介绍了Spark MLlib随机梯度下降法概述与实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • 浅谈Java类的加载,链接及初始化

    浅谈Java类的加载,链接及初始化

    今天给大家带来的是关于Java的相关知识,文章围绕着Java类的加载,链接及初始化展开,文中有非常详细的解释及代码示例,需要的朋友可以参考下
    2021-06-06
  • Springboot 1.5.7整合Kafka-client代码示例

    Springboot 1.5.7整合Kafka-client代码示例

    这篇文章主要介绍了Springboot 1.5.7整合Kafka-client代码示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • SpringBoot Druid配置过程图解

    SpringBoot Druid配置过程图解

    这篇文章主要介绍了SpringBoot Druid配置过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • 使用mongoTemplate实现多条件加分组查询方式

    使用mongoTemplate实现多条件加分组查询方式

    这篇文章主要介绍了使用mongoTemplate实现多条件加分组查询方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • nodejs与JAVA应对高并发的对比方式

    nodejs与JAVA应对高并发的对比方式

    这篇文章主要介绍了nodejs与JAVA应对高并发的对比方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • springboot]logback日志框架配置教程

    springboot]logback日志框架配置教程

    这篇文章主要介绍了springboot]logback日志框架配置,logback既可以通过application配置文件进行日志的配置,又可以通过logback-spring.xml进行日志的配置,本文给大家介绍的非常详细,需要的朋友参考下吧
    2022-04-04
  • java数组的初始化及操作详解

    java数组的初始化及操作详解

    在本文中小编给大家整理了关于java数组的初始化及操作的相关知识点内容,需要的读者们参考下。
    2019-07-07
  • java使用单向链表解决数据存储自定义排序问题

    java使用单向链表解决数据存储自定义排序问题

    本文主要介绍了java使用单向链表解决数据存储自定义排序问题,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03

最新评论