Maven+scala+spark常见问题总结
来源:互联网 发布:刘意 java 编辑:程序博客网 时间:2024/06/06 09:03
去除[WARNING] Using platform encoding (UTF-8 actually) to copy filter
在POM文件的顶级目录中,加入下面的配置。其实就是设置一下工程的编码格式
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties>
[maven3 warning] ‘dependencies.dependency.systemPath’ should not point at files within the project directory
systemPath被设计用来讲一些系统库包含进来,它们往往具有固定的路径。当在自己的project中使用这个特性但是指定相对路径如${basedir}/src/lib之类的,就会提示这个。解决方法如下:
- 如果中央仓库有你需要的包,那最好不过了,直接通过制定dependency来自动下载就好。
- 然而有时候你使用的一些第三方包,仓库中是没有的,这个时候,可以使用maven-install-plugin
来将该第三方包安装到本地仓库中即可。步骤如下(这里以spark-liblinear-1.95.jar为例):
首先查看这个包的层次结构,其实就是为了获取它的groupId, artifactId。然后在工程中的POM文件中加入这个包的依赖:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-install-plugin</artifactId> <version>2.5.2</version> </plugin> </plugins> </build>
然后执行下面的命令即可将第三方包安装到本地仓库中(注意,这里的groupId,artifactId要和上面的依赖中所写的一致,另外,-D选项和后面的参数之间不能有空格):
mvn install:install-file -Dfile=src/lib/spark-liblinear-1.95.jar -DgroupId=tw.edu.ntu.csie -DartifactId=liblinear -Dversion=1.95 -Dpackaging=jar
如果是要部署到自己公司的私有仓库中,可以使用下面的命令(没具体试验过):
mvn deploy:deploy-file -DgroupId=com.bea.xml -DartifactId=jsr173-ri -Dversion=1.0 -Dpackaging=jar -Dfile=[path to file] -Durl=[url] -DrepositoryId=[id]
将项目所有依赖的jar全部打包进最终的项目jar包中
直接使用maven自带的插件进行打包的话,项目依赖的jar不会被打包进最终的项目jar包中,同时,生成的jar包中的META-INF/MENIFEST.MF文件中,也没有指定主类,这样的包无法直接运行的。为了解决这个问题,可以使用maven-shade-plugin插件。在项目POM文件中,添加下面的配置代码(我工程的主类是my.maven.learn.App):
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>2.3</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <filters> <filter> <artifact>*:*</artifact> <excludes> <exclude>META-INF/*.SF</exclude> <exclude>META-INF/*.DSA</exclude> <exclude>META-INF/*.RSA</exclude> </excludes> </filter> </filters> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>my.maven.learn.App</mainClass> </transformer> </transformers> </configuration> </execution> </executions> </plugin>
之后执行mvn package 就会将所以依赖全部打包进jar包中,同时还会根据配置来自动设置主类。注意上面的filter代码段,shade在打包时,默认会将一些无用的文件加入到META-INF中,如果不将这些文件排除出去,则最终得到的jar包是无效的,无法执行。
[WARNING] Expected all dependencies to require Scala version: 2.10.4
我使用的是net.alchim31.maven:scala-maven-plugin插件, 配置文件中添加如下代码(其中scala.version设置为2.10.4, scala.binary.version设置为2.10):
<plugin> <groupId>net.alchim31.maven</groupId> <artifactId>scala-maven-plugin</artifactId> <version>3.1.6</version> <configuration> <scalaCompatVersion>${scala.binary.version}</scalaCompatVersion> <scalaVersion>${scala.version}</scalaVersion> </configuration> <executions> <execution> <phase>compile</phase> <goals> <goal>compile</goal> <goal>testCompile</goal> </goals> </execution> </executions> </plugin>
src/main/resources 中资源文件的访问方法:
maven在compile阶段,会将src/main/resources中的资源文件复制到target/classes目录下,因而如果要在代码中访问resources目录中的资源文件,只需要一下代码即可(此处假设需要访问的文件为src/main/resources/tt.txt):
getClass.getResource("/tt.txt");
- Maven+scala+spark常见问题总结
- scala spark编程常见问题总结
- Scala + Spark +Maven之Helloworld
- scala spark maven pom.xml2
- scala常见问题总结(IDE:idea)
- maven常见问题总结
- maven常见问题总结
- maven常见问题总结
- eclipse构建maven+scala+spark工程
- eclipse中构建maven+scala+spark
- scala spark maven 配置文件 pom.xml
- Eclipse+maven+scala+spark环境搭建
- IDEA MAVEN SPARK SCALA打包办法
- eclipse构建maven+scala+spark工程
- eclipse+scala+spark+maven的配置
- Eclipse+maven+scala+spark环境搭建
- Eclipse +Scala+Maven+Spark开发模式
- eclipse + maven + scala+spark环境搭建
- Setting the secure flag in the cookie is easy
- 创建Repo仓库
- 什么是跨域
- Oracal 基础学习
- 第8章 基于重新排序的排名方法 阅读
- Maven+scala+spark常见问题总结
- 7.c语言中的数组介绍
- SQL 时间格式化函数
- Android中程序与Service交互的方式——综述
- 黑白图像
- leetcode[7]:Reverse Integer
- Android应用的电量消耗和优化的策略
- CocoaPods详解之—-制作篇
- Easy way to use JText 2.1.7 and HTML-style template for generating report