zoukankan      html  css  js  c++  java
  • 使用Maven管理的jar项目将scala编译的class文件也添加到jar当中

    当进行scala代码与java代码同时编写的时候,我们可能会需要将scala代码连同java代码都打包成一个文件。
    本博文主要是针对jar包的打包,并没有针对war包。
    代码目录及文件:
    这里写图片描述
    pom文件的的plugins如下(主要代码段为org.scala-tools这个plugin):

    <build>
      <plugins>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <configuration>
            <source>1.6</source>
            <target>1.6</target>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>2.8</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-assembly-plugin</artifactId>
          <configuration>
            <finalName>${project.artifactId}-${project.version}</finalName>
            <descriptors>
              <descriptor>src/main/assembly/assembly.xml</descriptor>
            </descriptors>
          </configuration>
          <executions>
            <execution>
              <id>make-assembly</id>
              <phase>package</phase>
              <goals>
                <goal>single</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>2.3.1</version>
          <configuration>
            <outputDirectory>${project.basedir}/lib</outputDirectory>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.18</version>
          <configuration>
            <skipTests>${skipTests}</skipTests>
          </configuration>
        </plugin>
     <plugin>
          <groupId>org.scala-tools</groupId>
          <artifactId>maven-scala-plugin</artifactId>
          <version>2.15.2</version>
          <executions>
            <execution>
              <id>scala-compile-first</id>
              <goals>
                <goal>compile</goal>
              </goals>
              <configuration>
                <includes>
                  <include>**/*.scala</include>
                </includes>
              </configuration>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </build>

    pom文件的dependency如下(scala依赖):

    <dependency>
        <groupId>org.scala-lang</groupId>
        <artifactId>scala-library</artifactId>
        <version>2.11.8</version>
    </dependency>

    接下来进行mvn的打包,请确保windows下的mvn环境和jdk环境已经装好:
    这里写图片描述
    先如上图,清除包,接下来打包:
    这里写图片描述
    打包完成之后终端显示:
    这里写图片描述
    打包成jar包之后的scala代码和java代码编译后的class文件RmError.class是由scala代码编译而来的:
    这里写图片描述

    学习、成长
  • 相关阅读:
    Behavior Targeting 技术研究
    LINQ的Distinct总结
    当为业务逻辑层(BLL,Service)提供基类之后,程序变得了更加面向对象了
    MVC中,查询以异步呈现,分页不用异步的解决方案
    基础才是重中之重——面向抽象编程(抽象类的多态性)
    基础才是重中之重——派生类集合与基类集合可以相互转换吗?
    让你的 Nginx 的 RTMP 直播具有统计某频道在线观看用户数量的功能
    转发一个最新HEVCH.265码流分析软件
    PHP性能优化大全(整理)
    “灭”了国外的mini sql !
  • 原文地址:https://www.cnblogs.com/yarcl/p/11046768.html
Copyright © 2011-2022 走看看