比如Java 版本是1.8;Scala 版本是2.11.8
对于Maven 项目的构建,可以引入公有的插件。在构建和打包项目的过程中,Maven 的不同生命周期里面可以指定不同的插件做相应的事情
Maven 构建的生命周期如下:
- clean
- validate
- compile
- test
- package
- vertify
- install
- site
- deploy
对应的pom.xml 文件可以这样编写
<build>
<!-- 整个Maven 项目的编译插件,maven-compiler-plugin 对应的是整个的Java 代码做字节码编译转换的时候用到的编译工具 -->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
<!-- 编译用JDK1.8 -->
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
<!-- pluginManagement 标签下面只是声明对应的配置版本信息,不直接引入 -->
<!-- 只是用于管理插件,子项目里面谁需要谁直接引入即可 -->
<pluginManagement>
<plugins>
<!-- maven 的打包插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single<goal>
</goals>
</execution>
</executions>
</plugin>
<!-- 该插件用于将scala 代码编译成class 文件 -->
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>3.2.2</version>
<executions>
<!-- 绑定到maven 的编译阶段 -->
<execution>
<goals>
<goal>compile<goal>
<goal>testCompile<goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>