Idea使用Maven编译scala和打包jar

下面Maven的pom文件

[html]  view plain  copy
  1. <properties>  
  2.     <maven.compiler.source>1.7</maven.compiler.source>  
  3.     <maven.compiler.target>1.7</maven.compiler.target>  
  4.     <encoding>UTF-8</encoding>  
  5.     <scala.version>2.11.7</scala.version>  
  6.     <scala.compat.version>2.11</scala.compat.version>  
  7. </properties>  
  8.   
  9. <dependencies>  
  10.   
  11.     <dependency>  
  12.         <groupId>org.scala-lang</groupId>  
  13.         <artifactId>scala-library</artifactId>  
  14.         <version>${scala.version}</version>  
  15.     </dependency>  
  16. </dependencies>  
  17.   
  18. <build>  
  19.     <!--scala待编译的文件目录-->  
  20.     <sourceDirectory>src/main/scala</sourceDirectory>  
  21.     <testSourceDirectory>src/test/scala</testSourceDirectory>  
  22.     <!--scala插件-->  
  23.     <plugins>  
  24.         <plugin>  
  25.             <groupId>net.alchim31.maven</groupId>  
  26.             <artifactId>scala-maven-plugin</artifactId>  
  27.             <version>3.2.2</version>  
  28.             <executions>  
  29.                 <execution>  
  30.                     <goals>  
  31.                         <goal>compile</goal>  
  32.                         <goal>testCompile</goal>  
  33.                     </goals>  
  34.                     <configuration>  
  35.                         <args>  
  36.                             <!--<arg>-make:transitive</arg>--><!--scala2.11 netbean不支持这个参数-->  
  37.                             <arg>-dependencyfile</arg>  
  38.                             <arg>${project.build.directory}/.scala_dependencies</arg>  
  39.                         </args>  
  40.                     </configuration>  
  41.                 </execution>  
  42.             </executions>  
  43.         </plugin>  
  44.   
  45.         <!--manven打包插件-->  
  46.         <plugin>  
  47.             <groupId>org.apache.maven.plugins</groupId>  
  48.             <artifactId>maven-shade-plugin</artifactId>  
  49.             <version>2.4.3</version>  
  50.             <executions>  
  51.                 <execution>  
  52.                     <phase>package</phase>  
  53.                     <goals>  
  54.                         <goal>shade</goal>  
  55.                     </goals>  
  56.                     <configuration>  
  57.                         <filters>  
  58.                             <filter>  
  59.                                 <artifact>*:*</artifact>  
  60.                                 <excludes>  
  61.                                     <exclude>META-INF/*.SF</exclude>  
  62.                                     <exclude>META-INF/*.DSA</exclude>  
  63.                                     <exclude>META-INF/*.RSA</exclude>  
  64.                                 </excludes>  
  65.                             </filter>  
  66.                         </filters>  
  67.                         <transformers>  
  68.                             <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">  
  69.                                 <resource>reference.conf</resource>  
  70.                             </transformer>  
  71.                             <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">  
  72.                                 <mainClass>cn.itcast.rpc.Master</mainClass> <!--main方法-->  
  73.                             </transformer>  
  74.                         </transformers>  
  75.                     </configuration>  
  76.                 </execution>  
  77.             </executions>  
  78.         </plugin>  
  79.     </plugins>  
  80. </build>  

上面是使用Scala2.11的版本,注意scala2.11 netbean不支持这个参数-make:transitive这个参数,所以必须得注释掉

下面是简单的测试:



使用Maven进行jar依赖打包,之前使用Idea的artifacts进行打包,但是导出的jar有可能因为缺少某些信息而无法直接运行,但是使用maven自动的pakage便没有这个问题,而且jar包的大小明显小于artifacts的jar包大小,下面是使用方法


下载完相关的依赖后,会在target的目录下生成下项目的jar包


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值