Idea使用Maven编译scala和打包jar

下面Maven的pom文件


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

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

下面是简单的测试:



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


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


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值