本文转载自:
当我们无法从本地仓库找到需要的构件的时候,就会从远程仓库下载构件至本地仓库。一般地,对于每个人来说,书房只有一个,但外面的书店有很多,类似第,对于Maven来说,每个用户只有一个本地仓库,但可以配置访问很多远程仓库。
强烈推荐书籍:Maven实战 许晓斌著。目前是第一版
注意:最新版本的Eclipse代号Mars,已经直接集成了Maven,所以无需安装m2Eclipse插件。
Eclipse下新建Maven项目
1、下载Maven安装包
进入Maven官网的下载页面:,如下图所示:
选择当前最新版本:"apache-maven-3.3.9-bin.zip",下载到本地,解压缩到本地磁盘下。
2、配置
2.1 环境变量的配置
2.2 修改默认的本地仓库位置
进入Maven安装目录下的conf子目录中,打开settings.xml进行配置修改。
<!-- localRepository
| The path to the local repository maven will use to store artifacts.|| Default: ${user.home}/.m2/repository<localRepository>/path/to/local/repo</localRepository>--><localRepository>D:/SoftWare/maven/repository</localRepository>
Maven默认的本地仓库位置是当前用户工作目录下的".m2/repository",使用过程中这个目录里的文件会比较多,占用空间越来越大。一般建议更换到其它磁盘目录下。如下配置,就把默认的本地仓库更改到自己创建的目录。
如下图所示的localRepository标签中设置,就把默认的本地仓库更改到D:/SoftWare/maven/repository这个目录(这个目录结构需要自己创建好)。
2.3修改默认的中央仓库镜像
Maven默认的中央仓库里的文件不全。所以,都需要自行添加其它的镜像地址。在settings.xml文件中的“<mirrors>”标签里添加如下内容:
其实,是如下
注意啦!有时候,上面这样配置,不稳定,我这里给大家分享一个稳定的setting.xml !!!(优先)
D:/SoftWare/maven/repository osc central http://maven.aliyun.com/nexus/content/repositories/central osc_thirdparty thirdparty http://maven.aliyun.com/nexus/content/repositories/central jdk-1.4 1.4 nexus local private nexus http://maven.aliyun.com/nexus/content/repositories/central true false nexus local private nexus http://maven.aliyun.com/nexus/content/repositories/central true false osc true osc http://maven.aliyun.com/nexus/content/repositories/central osc_thirdparty http://maven.aliyun.com/nexus/content/repositories/central osc http://maven.aliyun.com/nexus/content/repositories/central
保存所做的修改,同时还需要把这个settings.xml文件复制一份到“D:\SoftWare\maven”目录下。
3、eclipse里的Maven插件安装
Eclipse默认不支持Maven。需要给它添加m2eclipse插件。下面是具体的操作步骤。
3.1、插件安装
打开Eclipse的Help->Install New Software,如下图所示:
选择“Add..”按钮,又会弹出如下对话框:
这个对话框就是用于添加一个插件地址的。在“Name”对应的输入框里输入该操作的一个标识名。在“Location”对应的输入框里输入这个插件的安装地址。注:Maven的Eclipse插件地址为:。输入后,如下图所示:
Name: m2e
Location: http://download.eclipse.org/technology/m2e/releases
输入完成后,点击右下角的“OK”按钮,就会弹出如下对话框:
MARS版本
我这里,就,已经安装过了。
这一步,有可能会
注意:安装maven时一定要注意版本匹配问题:下面就是我安装时遇到的问题
首先安装maven时遇到Missing requirement: m2e logback configuration 1.7.0.20160603-1933 (org.eclipse.m2e.logback.configur。。。的问题。
这是由于eclipse和maven插件版本不匹配,我的eclipse版本为如下,只能安装m2e - 的版本,高版本就报错
推荐用MARS版本!!!
注意,有些版本,我已测试过,如,NEON版本
会发生上述的错误。
这里需要选择想要安装的插件的详细内容。选中“Maven Integration for Eclipse”前面的复选框。如下图所示:
选择完成后,点击右下方的“Next>”按钮进行安装。安装成功后,会提示需要重启Eclipse来生效这次配置。重启之后,这个Eclipse就可以使用m2eclipse插件功能了。
需要一段时间
自动重启
3.2、Eclipse下对maven进行配置
插件安装好之后,还需要进行一些配置才能够开始使用Maven的功能。
3.2.1、 设置m2eclipse插件所关联的Maven程序
需要修改配置:首先选择Window->Preferences,弹出如下对话框
在这个对话框左边的导航栏中展开“Maven”目录结点,并选择“Installations”子节点,如下图所示:
这里需要关联上对应的Maven安装程序。具体操作是,在右边面板中选择“Add…”按钮,会弹出如下选择Maven安装目录的选择对话框:
通过这个对话框来选择Maven的具体安装目录。选择好之后就点击“确定”按钮。如下图所示:
3.2.2、 设置自定义的本地仓库
选择如上图对话窗口左边菜单树 “Maven”节点下的“UserSettings”子节点,它默认的配置文件是“C:\Documents and Settings\csdn\.m2\settings.xml”,如下图所示:
这边需要修改为我们自定义仓库位置下的settings.xml文件。具体操作是,点击“Browse…”按钮来选择上一步骤修改的本地仓库目录下的settings.xml文件,如下图所示:
在上图中选择D:\SoftWare\apache-maven-3.3.9\conf目录下的“settings.xml”文件,点击“打开”按钮来确认刚才的选择,就会回到如下图的对话窗口中:
在上图中点击右下角的“OK”按钮来完成所有的配置修改。
4、Eclipse创建maven项目
在eclipse菜单栏中选择"File"->"News"->"Other"菜单项,就会打开如下对话窗口,在窗口中选择"Maven"节点下"Maven Project"条目,如下图所示,之后跟着下一步。。。就可以将项目创建好了。
我这里,选择other
想说的是,SBT是为scala专门而设计的,但是,一般很多人还是用的是maven。
使用maven-archetype-quickstart 或者 coccoon-22-archetype-webapp
或者
也许,这一步,会碰到如下问题。
解决办法:
或者
Catalog File: http://repo2.maven.org/maven2/archetype-catalog.xml
Description: maven catalog
然后,再重新 File -> New -> Maven Project
这里,自己任意取,
Group Id: com.zhouls.spark
Artifact Id: SparkApps
CoreException: Could not calculate build plan: Plugin org.apache.maven.plugins:maven-compiler-plugin:3.1 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-compiler-plugin:jar:3.1: UnresolvableModelException: Failure to transfer org.apache.maven.plugins:maven-plugins:pom:24 from https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced. Original error: Could not transfer artifact org.apache.maven.plugins:maven-plugins:pom:24 from/to central (https://repo.maven.apache.org/maven2): timeout
解决方法:
1.找到maven库目录,进入:D:\SoftWare\maven\repository\org\apache\maven\plugins\maven-compiler-plugin\3.1
2. 若3.1这个目录下只有,"maven-compiler-plugin-3.1.pom.lastUpdated" 则需要到http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-compiler-plugin/3.1/,把里面的文件下载下来放到目录3.1下,如果该仓库中没有,那么可以去这个地方下载下来,然后放置到对应的本地仓库中
可见,我这里是不需进行步骤2,直接到步骤3.
3.删除3.1下的maven-compiler-plugin-3.1.pom.lastUpdated文件或3.1目录下的所有文件
4.项目右键-->maven-->Update Dependencies
即,得到解决!
如果以上方法还是无法解决该问题:则 打开settings.xml,尝试换个mirror镜像或者干脆采用默认的仓库,即注释掉
删除清空
再重新来一次
这里,我继续,上面的步骤,下来。用了我那个稳定的setting.xml文件,之后,中间不会出现什么问题!!!
把此处默认的jdk,J2SE-1.5,变成我们自己安装的jdk版本(jdk1.7或jdk1.8)
得到
对应,得到
这个pom.xml文件,里有我们工程实际时编写和运行时的依赖和支持。
进入,如下
选择,pom.xml
在修改pom.xml文件之前,Maven Dependencies如下
创建项目之后,pom.xml默认的内容如下
4.0.0 com.zhouls.spark SparkApps 0.0.1-SNAPSHOT jar SparkApps http://maven.apache.org UTF-8 junit junit 3.8.1 test
这一步,最为关键,具体怎么修改pom.xml,是要看自己的需求。
我这里,因为是spark1.5.2版本。
其他的,类似,这里不多赘述。
在这过程中,最好是去复制,官网。为了避免自己手误或者格式不对!!!可以避免如下面的错误!
修改后的pom.xml内容是
4.0.0 com.zhouls.spark SparkApps 0.0.1-SNAPSHOT jar SparkApps http://maven.apache.org UTF-8 4.10 1.5.2 2.6.0 junit junit ${junit.version} test org.apache.spark spark-core_2.10 ${spark.version} org.apache.spark spark-sql_2.10 ${spark.version} org.apache.spark spark-hive_2.10 ${spark.version} org.apache.spark spark-streaming_2.10 ${spark.version} org.apache.spark spark-streaming-kafka_2.10 ${spark.version} org.apache.hadoop hadoop-client ${hadoop.version} src/main/java src/main/test maven-assembly-plugin jar-with-dependencies make-assembly package single org.codehaus.mojo exec-maven-plugin 1.2.1 exec java true false compile com.zhouls.spark.SparkApps.cores.WordCount org.apache.maven.plugins maven-compiler-plugin 2.3.2 1.6 1.6
正在下载
立马生成好了。可见,Maven自动生成jar包,多么的方便!
其他的一一去解决!
对应地,生成,
我的这里,得到如下
至此,Eclipse下新建Maven项目、自动打依赖jar包。大功告成!!!
Eclipse里创建Maven,比较有价值的错误总结
感谢如下博主:
作者:
出处: