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

posted @ 2018-04-27 14:39  yarcl  阅读(759)  评论(0编辑  收藏  举报