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代码编译而来的:
    这里写图片描述

    学习、成长
  • 相关阅读:
    C++编译期间字节序判断
    解决:无法使用前导 .. 在顶级文件夹上退出
    手动脱WinUpack 壳实战
    浅谈cocos2dx(18) 中工厂模式
    手把手带你画一个 时尚仪表盘 Android 自己定义View
    Git实战(二)原理
    <html>
    Ubuntu局域网下利用client联网
    Desugar Scala(17) -- Option和for,以及脑子里发生的事情
    通过Canvas及File API缩放并上传图片完整演示样例
  • 原文地址:https://www.cnblogs.com/yarcl/p/11046768.html
Copyright © 2011-2022 走看看