最近一直在学习使用Macbook,在这里记录一下所有遇到的问题
问题起源:

1.Macbook 安装了Eclipse,Eclipse装入插件maven & git , 但是在git中clone project 的时候,经常会报错:

Could not calculate build plan: Failed to parse plugin descriptor for org.apache.maven.plugins:maven-resources-plugin:2.5 (/Users/hanyang/.m2/repository/org/apache/maven/plugins/maven-resources-plugin/2.5/maven-resources-plugin-2.5.jar): invalid LOC header (bad signature)


初步分析是因为找不到maven-resources-plugin-2.5.jar,因为当前给出的路径是Windows的路径,在Macbook下没有当前路径,所以目前要做的事情就是不仅要再Eclipse中集成Maven插件,还有在MacBook中安装配置maven


下载maven:

http://maven.apache.org/download.cgi

解压缩,然后配置环境变量:

echo $SHELL   ------- 查看当前Mac OS X是什么样的Shell

如果输出的是:csh或者是tcsh,那么你用的就是C Shell。

如果输出的是:bash,sh,zsh,那么你的用的可能就是Bourne Shell的一个变种。

Mac OS X 10.2之前默认的是C Shell。

Mac OS X 10.3之后默认的是Bourne Shell。

我当前环境是sh shell

把要添加的环境变量添加到你主目录下面的.profile或者.bash_profile,如果没有生成一个。


step:

1.使用touch命令在~目录(用户目录)下创建.bash_profile文件

2.open -e .bash_profile

3.输入以下内容:

M2_HOME=/Users/tom/TYDOC/apache-maven-3.2.1
PATH=$M2_HOME/bin:$PATH

export M2_HOME
export PATH

4.保存退出,使用source .bash_profile命令使修改的环境变量配置生效,

5.mvn -v 测试是否安装成功

注:

 1./etc/profile   (建议不修改这个文件 )

 全局(公有)配置,不管是哪个用户,登录时都会读取该文件。

 2./etc/bashrc    (一般在这个文件中添加系统级环境变量)

 全局(公有)配置,bash shell执行时,不管是何种方式,都会读取此文件。

 在这里加入mysqlstart、mysql和mysqladmin命令的别名,保证每一个用户都可以使用这3个命令。 

 3.~/.bash_profile  (一般在这个文件中添加用户级环境变量)

(注:Linux 里面是 .bashrc 而 Mac 是 .bash_profile)


接下来又修改了一下Eclipse中settings.xml文件的位置,打开Eclipse的preference --- maven --- User Settings

选择一下maven安装的那个目录下的conf/settings.xml,update一下 ---  OK

(关于如何配置用户的settings.xml,请参看maven详细配置文章)

如上搞了一堆,还是没搞定。。。又仔细看了以下错误: Failed to parse plugin maven-resources-plugin-2.5.jar

觉得是maven-resources-plugin-2.5.jar这个jar出了问题。然后使用了如下办法:

打开执行命令:

cd ~

ls -a

cd .m2

cd org/apache/maven/plugins/maven-resources-plugin

ls        ----   这个时候我看到了,我当前的三个plugin的包 2.4.3     2.5     2.5.1

因为maven-resources-plugin-2.5.jar报错,所以直接干掉这个文件

rm -f maven-resources-plugin-2.5.jar

后来寻思一下,干脆直接remove folder 2.5

rm -rf 2.5

回到Eclipse,重新maven install,这时候查看目录,会发现重新生成了2.5这个文件夹和里面的全部数据

哇靠,搞定了。。。

结束语:至于为什么有2.4.3   2.5.1版本在那,Eclipse为啥只认准这个2.5了,我想应该是Eclipse的maven插件配置问题,

我当前用是Java版本,Kepler Service Release 2,它是默认集成了maven,不是自己安装的。所以应该是默认配置的原因吧,

或者是我下载这个Eclipse的时候,没有下载完整吧,如果真的是这样希望大家最后MD5校验一下了。


============================================================================

jdk环境变量配置同上,例如

MAVEN_HOME=/usr/share/java/maven-3.1.1
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home
export MAVEN_HOME
export JAVA_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin:${JAVA_HOME}/bin

 

=============================================================

未手动配置jdk 环境变量前,输入mvn -v ,出现以下错误

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/maven/cli/MavenCli : Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:637)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf(ClassRealm.java:401)
    at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:42)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:254)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
    at org.codehaus.plexus.classworlds.launcher.Launcher.getMainClass(Launcher.java:144)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:266)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)




Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐