centos下maven安装以及问题解决
来源:互联网 发布:入侵网站修改数据 编辑:程序博客网 时间:2024/06/05 23:54
http://blog.csdn.net/u011414200/article/details/47857917
一、Maven简介
Maven 是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具
Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长
Maven这个单词来自于意第绪语,意为知识的积累,最早在Jakata Turbine项目中它开始被用来试图简化构建过程。当时有很多项目,它们的Ant build文件仅有细微的差别,而JAR文件都由CVS来维护。于是Maven创始者开始了Maven这个项目,该项目的清晰定义包括,一种很方便的发布项目信息的方式,以及一种在多个项目中共享JAR的方式。
二、常见 Bug
用maven做项目,最郁闷的莫过于某些依赖库下载不了。被墙了,你懂的。使用maven镜像仓库及其重要,特别是国内的镜像,可以有效缓解被墙疼痛。
同时,会经常会遇到以下问题:
[ERROR] Failed to execute goal on project …: Could not resolve dependencies for project …: The following artifacts could not be resolved: com.smart:smart-framework:jar:1.0, …: Failure to find com.smart:smart-framework:jar:1.0 inhttp://maven.oschina.net/content/groups/public/ was cached in the local repository, resolution will not be reattempted until the update interval of osc has elapsed or updates are forced -> [Help 1]
目前 OSC Maven 已经将所有第三方 jar 包放到了独立的仓库中,该仓库的地址如下:
http://maven.oschina.net/content/repositories/thirdparty/
为了防止与中央仓库同步时导致冲突,目前 thirdparty 仓库与 public 仓库没有任何交集了,也就是说它们是完全独立的,public 不再包括 thirdparty。
这里笔者推荐有兴趣的读者可以参考 开源中国 Maven 库使用帮助。
三、安装步骤
下载 Maven
首先到 Maven 官网 http://maven.apache.org/download.cgi 下载 Maven 软件,这里下载的是 bin 版本。或者去笔者的博客资源里下载 (笔者使用的是这个)解压 Maven到 /home/Hadoop/software 目录下
1.cd /home/hadoop/software2.tar -zxvf apache-maven-3.2.1-bin.tar.gz
- 修改配置 Maven
1.export M2=/home/hadoop/software/apache-maven-3.2.12.export PATH=${PATH}:$M2/bin
- 检验 Maven 是否安装成功
mvn -version
显示如下即安装成功:
注意事项:
1. 注意Maven版本文件
hadoop 2.2.0的源码与Maven 3.x存在兼容性问题,所以会出现Java.lang.NoClassDefFoundError: org/sonatype/aether/graph/DependencyFilter
2. MAVEN国内镜像配置
由于maven国外服务器可能连不上,先给maven配置一下国内镜像,在maven目录下,conf/settings.xml,在里添加,原本的不要动,(本人在原有的基础上直接修改,也成功)
<mirror> <id>nexus-osc</id> <mirrorOf>*</mirrorOf> <name>Nexusosc</name> <url>http://maven.oschina.net/content/groups/public/</url></mirror><mirror> <id>osc_thirdparty</id> <mirrorOf>thirdparty</mirrorOf> <url>http://maven.oschina.net/content/repositories/thirdparty/</url></mirror>
同样,在内新添加:
<profile> <id>jdk-1.4</id> <activation> <jdk>1.4</jdk> </activation> <repositories> <repository> <id>nexus</id> <name>local private nexus</name> <url>http://maven.oschina.net/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>nexus</id> <name>local private nexus</name> <url>http://maven.oschina.net/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </pluginRepository> </pluginRepositories></profile>
以上代码,本人均直接复制替换原有的代码,可以将原有代码备份!
3.复制配置
- 将该配置文件复制到用户目录,使得每次对maven创建时,都采用该配置
- 查看用户目录【/home/hadoop】是否存在【.m2】文件夹,如没有,则创建
cd /home/hadoop/mkdir .m2
- 复制文件
cp /home/hadoop/software/apache-maven-3.2.1/conf/settings.xml ~/.m2/
四、Maven添加其他镜像地址
如果上述的镜像无法满足您的需求,那么以下这些镜像地址,可以考虑以下,至少笔者使用上面的镜像已经足够了
1. 国外镜像:biblio.org
<mirror> <id>ibiblio</id> <mirrorOf>central</mirrorOf> <name>ibiblio Mirror of http://repo1.maven.org/maven2/</name> <url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url></mirror>
2. 国外镜像:jboss
<mirror> <id>jboss-public-repository-group</id> <mirrorOf>central</mirrorOf> <name>JBoss Public Repository Group</name> <url>http://repository.jboss.org/nexus/content/groups/public</url></mirror>
3.国外镜像:repo2
<mirror> <id>repo2</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://repo2.maven.org/maven2/</url></mirror>
4.国外镜像: uk.maven.org
<mirror> <id>uk</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://uk.maven.org/maven2/</url></mirror>
5. 国内镜像:oschina.NET
<mirror> <id>nexus-osc</id> <mirrorOf>*</mirrorOf> <name>Nexus osc</name> <url>http://maven.oschina.net/content/groups/public/</url></mirror>
6. net.cn
<mirror> <id>net-cn</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://maven.net.cn/content/groups/public/</url> </mirror>
参考的是:使用maven镜像:http://www.waylau.com/use-maven-mirrors/?utm_source=tuicool&utm_medium=referral
开源中国整理的 Maven镜像站点收集:
<mirror> <id>UK</id> <name>UK Central</name> <url>http://uk.maven.org/maven2</url> <mirrorOf>central</mirrorOf></mirror><mirror> <id>sonatype</id> <name>sonatype Central</name> <url>http://repository.sonatype.org/content/groups/public/</url> <mirrorOf>central</mirrorOf></mirror>
问题1:mavenFailed to execute goal org.apache.maven.plugins:maven-surefire-plugin解决方法
maven中跳过单元测试
你可能想要配置 Maven 使其完全跳过单元测试。 可能你有一个很大的系统,单元测试需要花好多分钟来完成,而你不想在生成最终输出前等单元测试完成。 你可能正工作在一个遗留系统上面,这个系统有一系列的失败的单元测试,你可能仅仅想要生成一个JAR 而不是去修复所有的单元测试。 Maven 提供了跳过单元测试的能力,只需要使用 Surefire 插件的skip
参数。 在命令行,只要简单的给任何目标添加maven.test.skip
属性就能跳过测试:
$ mvn install -Dmaven.test.skip=true
...
[INFO] [compiler:testCompile]
[INFO] Not compiling test sources
[INFO] [surefire:test]
[INFO] Tests are skipped.
...
当 Surefire 插件到达 test
目标的时候,如果 maven.test.skip
设置为 true
,它就会跳过单元测试。 另一种配置 Maven 跳过单元测试的方法是给你项目的pom.xml
添加这个配置。 你需要为你的build
添加 plugin
元素。
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
[...]
</project>
- centos下maven安装以及问题解决
- centos下安装maven
- centos下安装maven
- centos下maven安装
- CentOS下Maven安装
- centos 下maven的安装
- CentOS下Maven的安装
- centos 下 nexus 私服 以及maven配置
- CentOS 6.5 安装java以及maven
- CentOS下安装vsftpd及问题解决
- CentOS 6.6下安装Jenkins和Maven以及私服nexus的步骤
- centos环境下,maven的安装以及在eclipse中的配置(2017/07/06)
- CentOS 6.6下安装Jenkins和Maven以及私服nexus的步骤
- window下mysql安装以及问题解决方法
- Linux centos下安装jdk、maven、ant
- CentOS下eclipse安装、maven配置
- CentOS 7 环境下安装Maven
- centos下maven的安装及配置
- http-关于application/x-www-form-urlencoded等字符编码的解释说明
- A
- 获取gradle.properties中的值
- 一起学Java_面向对象(5)
- 极角排序详解
- centos下maven安装以及问题解决
- Kali下利用XAMPP搭建DVWA及使用command injection
- TI—CC3200【2】通过UDP传输音频
- HelloWorld
- mysql中什么数据类型可以存储路径
- 将数字转为中文金额的大写方式(C++版)
- mybatis的foreach
- static_cast, dynamic_cast, reinterpret_cast, const_cast区别比较
- java实现三个线程A B C,A线程打印A之后才能B线程打印B,然后接着C线程执行打印C,继而循环下去