Sun Java 1.6.0_24およびApache maven 3.0.3をNattyの〜/ Workに手動でインストールし、端末からmavenを実行すると終了します。
私はさまざまな他のバージョンのmaven(2.2.1、2.0.11)、以前のバージョンのjdk(1.6.0_23)を運もなく試しました。
また、tty1にログインして、そこからmvnを実行しようとしましたが、その結果、セッションが失われました(つまり、ホストログインでプロンプトが表示されます)。
私はこの動作をantで複製できるので、シェル/ターミナルエミュレーターで何かが壊れているのではないかと疑っています。
私の悪い。 Java/maven/etcを使用するように環境をセットアップするには、〜/ binにある一連のスクリプトを使用します。たとえば、〜/ bin/env-mavenです。その頭は:
#!/bin/bash
set -e
ソースとしてスクリプトを使用するには:
. ~/bin/env-maven
次に、パイプライン(コマンド)からゼロ以外の終了コードが検出された場合、すぐに終了するようにbashに指示します。私の場合、pom.xmlなしでmvnを実行します。
Mavenの複数のバージョン(Maven2とMaven3など)を実行している場合は、環境を確認して、複数のインストールを参照していないことを確認してください。
たとえば、M2_HOMEがあると、mvn 3は実行されません(注:さまざまなMavenおよびJavaを/ optにインストールしました)。
$ type mvn
mvn is /opt/maven3/bin/mvn
$ env | grep 'M.*HOME'
MAVEN_HOME=/opt/maven-1.1
M2_HOME=/opt/maven2
$ /opt/maven3/bin/mvn -v
Exception in thread "main" Java.lang.NoClassDefFoundError: org/codehaus/plexus/classworlds/launcher/Launcher
Caused by: Java.lang.ClassNotFoundException: org.codehaus.plexus.classworlds.launcher.Launcher
at Java.net.URLClassLoader$1.run(URLClassLoader.Java:202)
at Java.security.AccessController.doPrivileged(Native Method)
at Java.net.URLClassLoader.findClass(URLClassLoader.Java:190)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:307)
at Sun.misc.Launcher$AppClassLoader.loadClass(Launcher.Java:301)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:248)
Could not find the main class: org.codehaus.plexus.classworlds.launcher.Launcher. Program will exit.
$ unset M2_HOME
$ /opt/maven3/bin/mvn -v
Apache Maven 3.0.3 (r1075438; 2011-02-28 09:31:09-0800)
Maven home: /opt/maven3
Java version: 1.6.0_23, vendor: Sun Microsystems Inc.
Java home: /opt/Java/jdk1.6.0_23/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "2.6.35-28-generic", Arch: "AMD64", family: "unix"