2013-06-05 2 views
2

У меня есть Cygwin в Windows 7 и загружены и установлены Maven «двоичные файлы» и следующий наборОшибка maven при запуске в cygwin?

export JAVA_HOME=/cygdrive/c/java/jdk1.7.0_11 
export MAVEN_HOME=/usr/apache-maven-3.0.5 
export M2_HOME=/home/MyUser/.m2 
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH 

$ which java 
/cygdrive/c/java/jdk1.7.0_11/bin/java 

$ java -version 
java version "1.7.0_11" 
Java(TM) SE Runtime Environment (build 1.7.0_11-b21) 
Java HotSpot(TM) 64-Bit Server VM (build 23.6-b04, mixed mode) 

$ which mvn 
/usr/apache-maven-3.0.5/bin/mvn 

$ mvn -version 
Error: Could not find or load main class org.codehaus.plexus.classworlds.launcher.Launcher 

Я посмотрел на Maven error: Could not find or load main class org.codehaus.plexus.classworlds.launcher.Launcher, но он не связан с моим вопросом.

Что я пропустил?

ответ

1

Я провел пару часов безрезультатно, играя с различными комбинациями JAVA_HOME, M2_HOME и M2 после этой же проблемы. Наконец, я решил отладить скрипт mvn (изменив строку 1 на «#!/bin/sh -x»). Это происходит потому, что сценарий опирается на оболочку подстановку, чтобы получить правильную версию файла .jar (прибл линии 157.):

CLASSPATH="${M2_HOME}/boot/plexus-classworlds-*.jar" 

* не расширяется, по какой-то причине подстановка отключена ; Поэтому команда скрипт пытается выполнить это:

'/cygdrive/c/Program Files/Java/jdk1.7.0_40/bin/java' -classpath 'D:\apps\apache-maven-3.0.4\boot\plexus-classworlds-*.jar' '-Dclassworlds.conf=D:\apps\apache-maven-3.0.4\bin\m2.conf' '-Dmaven.home=D:\apps\apache-maven-3.0.4' org.codehaus.plexus.classworlds.launcher.Launcher -version 

, когда он должен быть:

'/cygdrive/c/Program Files/Java/jdk1.7.0_40/bin/java' -classpath 'D:\apps\apache-maven-3.0.4\boot\plexus-classworlds-2.4.jar' '-Dclassworlds.conf=D:\apps\apache-maven-3.0.4\bin\m2.conf' '-Dmaven.home=D:\apps\apache-maven-3.0.4' org.codehaus.plexus.classworlds.launcher.Launcher -version 

Решение: Редактирование «МВН» сценарий и изменение строки 157 следующим образом:

CLASSPATH="$(echo ${M2_HOME}/boot/plexus-classworlds-*.jar)" 
-2

изменить путь JAVA_HOME в файле .bashrc_profile

Смежные вопросы