Maven 3をインストールするにはどうすればよいですか?


33

Maven 2はリポジトリにありますが、Maven 3にはありません。Maven3を正しくインストールする方法を教えてください。私が見つけたガイドは実際には正しく動作しません。

私はNattyを使用していますが、これで何も変わらないと確信しています。

回答:


25

Maven3はUbuntu 12.04(正確)のデフォルトです

Maven2は、11.10のリポジトリの最新版です。

maven3のPPAはかなり不足しているように見えます-ここにmaverickの PPAがありますが、入手可能な最新バージョンではありません。

最良のアドバイスは、ディストリビューションバージョンで使用可能な安定バージョンを使用することです。

ただし、最新の状態を維持したい場合は、コードをダウンロードしてインストールするのが非常に簡単です。

ここから.tar.gzファイルをダウンロードし、同じWebページのインストールガイダンスに従ってください


あなたがリンクしてくれたリポジトリのパッケージを使用して、ステップをガイドします。
-nickguletskii

そう、これは機能します。ありがとう-アーカイブからファイルを手動で抽出し、/ usr / share / maven3 /のすべてをtarのファイルに置き換えました。
-nickguletskii

これを試してみましたが、うまくいきませんでした。端末を閉じた後、mvnコマンドを認識できませんでした
user962206

@ user962206-新しい質問をしてください。
fossfreedom


25

ここに、64ビットUbuntu 11.10でうまく機能したmaven3 PPAがあります

sudo add-apt-repository ppa:natecarlson/maven3
sudo apt-get update && sudo apt-get install maven3

正規リポジトリからmaven2が既にインストールされている場合、これは置き換えられませんが、mvn3バイナリを提供します。

mvn3の代わりにmvnと呼ばれるバイナリを使用する場合は、次の手順を実行できます。

sudo ln -s /usr/bin/mvn3 /usr/bin/mvn

ソース


4
これはもう機能しないようです。
KingOfHypocrites

4

問題は古いですが、金です。今日、解決策を見つけなければなりませんでした。さあ。maven3はすでにUbuntuリポジトリに含まれているため、安全でないリポジトリを使用する必要はありません。Ubuntu 14.04 LTSのソリューションは次のようになります。

  • sudo apt-get install maven
  • sudo update-alternatives --config mvn

2番目のコマンドを使用すると、使用するバージョンを設定するように求められます。maven2が含まれていないパスを選択することにより、正しいディレクトリを区別できます。

   *0    /usr/share/maven2/bin/mvn   200       Auto-Modus
    1    /usr/share/maven/bin/mvn    150       manueller Modus
    2    /usr/share/maven2/bin/mvn   200       manueller Modus

私の場合は、選択する必要がありました1

発行されたコマンドmvn -vを使用して、設定が成功したかどうか、および正しいバージョンを選択したかどうかを確認できます。以下に戻り値の例を示します。

  ~$ mvn -version
  Apache Maven 3.0.5
  Maven home: /usr/share/maven
  Java version: 1.7.0_75, vendor: Oracle Corporation
  Java home: /usr/lib/jvm/java-7-openjdk-amd64/jre
  Default locale: de_DE, platform encoding: UTF-8
  OS name: "linux", version: "3.13.0-45-generic", arch: "amd64", family: "unix"

これが少しお役に立てば幸いです。


それは3.0.5(2016-02-05)のみを提供しますが、3.3.xが必要です-それを取得する方法はありませんか?
Kajetanアプト

2

Mavenをインストールしてbinに追加するだけでなく、UbuntuをVirtualBoxゲストとして使用している場合にピックアップして、既存の '.m2'および既存のまたは含まれていない可能性のあるmavenフォルダーをマウントしようとする新しいスクリプトを作成しました設定。

MavenがWindowsまたはUnixで実行されている場合は同じままなので、両方で同じMavenを使用できます。これがVirtualBoxセットアップです...

PS。/ usr / local / binから共有フォルダーをマウント/アンマウントできるスクリプトのビルドに注意してください:)

#!/bin/bash
#Author: Yucca Nel http://thejarbar.org
#Will restart system
PATH="/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin:."
export PATH

#Modify these variables as needed...
tempWork=/tmp/work
defaultStartScript=/etc/init.d/rc.local
defaultMaven=3.0.3
locBin=/usr/local/bin
mavenUsrLib=/usr/lib/maven

mkdir -p $mavenUsrLib
mkdir -p $HOME/.m2

read -p "Please [Enter] full path name of your local startup script ($defaultStartScript is the default). Please
make sure on this before providing a value by consulting documentation for your system:" locStartScript
locStartScript=${locStartScript:-$defaultStartScript}

read -p "Please [Enter] Maven Version ($defaultMaven is default):" mavenVersion
mavenVersion=${mavenVersion:-$defaultMaven}


if [ ! -f $locStartScript ]
then
    echo "The file you provided could not be found. Remember to include the full path and try again. Exiting in 7 secs..."
    sleep 7
    exit 1
fi

mkdir -p /$tempWork
cd /$tempWork

sudo wget http://mirrors.powertech.no/www.apache.org/dist//maven/binaries/apache-maven-$mavenVersion-bin.tar.gz
tar -zxvf ./*

#Move it to a more logical location
sudo mv -f ./apache-maven-$mavenVersion $mavenUsrLib/

#If you have Maven on Windows and use VirtualBox, you can set up the maven to be a virtualbox shared folder.
#The name must match the name used below (ignore if irrelevant to you).


if [ -f /sbin/mount.vboxsf ]
then
    sudo /sbin/umount $HOME/.m2
    sudo /sbin/umount $mavenUsrLib
    sudo /sbin/mount.vboxsf .m2 $HOME/.m2
    sudo /sbin/mount.vboxsf maven $mavenUsrLib
fi

if mountpoint -q $HOME/.m2 &&  mountpoint -q $mavenUsrLib
then
#Add it to the start script to automate process...
    sudo sed -ie '$d' $locStartScript
if ! grep "sudo /sbin/mount.vboxsf .m2 $HOME/.m2" $locStartScript
then
    echo "sudo /sbin/mount.vboxsf .m2 $HOME/.m2" | sudo tee -a $locStartScript
fi

if ! grep "sudo /sbin/mount.vboxsf maven $mavenUsrLib" $locStartScript
then
    echo "sudo /sbin/mount.vboxsf maven $mavenUsrLib" | sudo tee -a $locStartScript
fi
    echo "exit 0" | sudo tee -a $locStartScript
    sudo chmod +x $locStartScript

#Create a mount and unmount script file...
    rm -rf $tempWork/*
    echo '#!/bin/bash' > $tempWork/maven-mount.sh
    echo "sudo /sbin/mount.vboxsf .m2 $HOME/.m2" >> $tempWork/maven-mount.sh
    echo "sudo /sbin/mount.vboxsf maven $mavenUsrLib" >> $tempWork/maven-mount.sh
    echo "echo 'mounted maven'" >> $tempWork/maven-mount.sh
    echo "exit 0" >> $tempWork/maven-mount.sh

    echo '#!/bin/bash' > $tempWork/maven-umount.sh
    echo "sudo umount $HOME/.m2" >> $tempWork/netbeans-umount.sh
    echo "sudo umount $mavenUsrLib" >> $tempWork/netbeans-umount.sh
    echo "echo 'unmounted maven'" >> $tempWork/maven-mount.sh
    echo 'exit 0' >> $tempWork/maven-umount.sh

#Script for mounting ALL VirtualBox shared solders....
#If there isn't one create one...
if [ ! -f $locBin/mount-all-from-host.sh ]
then
    echo '#!/bin/bash' > $tempWork/mount-all-from-host.sh
    echo "sudo /sbin/mount.vboxsf .m2 $HOME/.m2" | sudo tee -a $tempWork/mount-all-from-host.sh
    echo "sudo /sbin/mount.vboxsf maven $mavenUsrLib" | sudo tee -a $tempWork/mount-all-from-host.sh
    echo "exit 0" | sudo tee -a $tempWork/mount-all-from-host.sh

#Otherwise if there is one, but no mount, add one...
elif ! grep "sudo /sbin/mount.vboxsf .m2 $HOME/.m2" $locBin/mount-all-from-host.sh
then
    sudo sed -ie '$d' $locBin/mount-all-from-host.sh
    echo "sudo /sbin/mount.vboxsf .m2 $HOME/.m2" | sudo tee -a $locBin/mount-all-from-host.sh
    echo "exit 0" | sudo tee -a $locBin/mount-all-from-host.sh

elif ! grep "sudo /sbin/mount.vboxsf maven $mavenUsrLib" $locBin/mount-all-from-host.sh
then
    sudo sed -ie '$d' $locBin/mount-all-from-host.sh
    echo "sudo /sbin/mount.vboxsf maven $mavenUsrLib" | sudo tee -a $locBin/mount-all-from-host.sh
    echo "exit 0" | sudo tee -a $locBin/mount-all-from-host.sh

fi

#Script for unmounting ALL VirtualBox shared folders...
#If there isn't one create one...
if [ ! -f $locBin/umount-all-from-host.sh ]
then
    echo '#!/bin/bash' > $tempWork/umount-all-from-host.sh
    echo "sudo umount -a -t vboxsf" | sudo tee -a $tempWork/umount-all-from-host.sh
    echo "echo 'unmounted all VirtualBox shared folders'" | sudo tee -a $tempWork/umount-all-from-host.sh
    echo "exit 0" | sudo tee -a $tempWork/umount-all-from-host.sh
fi

    sudo chmod +x $tempWork/*
    sudo mv -f $tempWork/*.sh $locBin/
    rm -rf $tempWork
fi

sudo ln -f -s $mavenUsrLib/apache-maven-$mavenVersion/bin/* /usr/bin/
sudo rm -rf $tempWork
sudo reboot

exit 0

2

この問題を解決できるmaven3 PPAは次のとおりです。

インストールに従ってください:

sudo apt-get purge maven maven2 maven3
sudo add-apt-repository ppa:andrei-pozolotin/maven3
sudo apt-get update && sudo apt-get install maven3

そして今、あなたはmaven3をインストールしました

nazar@lelyak-desktop ~ $ mvn -version
Apache Maven 3.3.3 (7994120775791599e205a5524ec3e0dfe41d4a06; 2015-04-22T14:57:37+03:00)
Maven home: /usr/share/maven3
Java version: 1.7.0_80, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-7-oracle/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.13.0-24-generic", arch: "amd64", family: "unix"

Launchpadへのリンク



1

アップグレードしましたが、classnotfoundエラーが発生しました。これを修正するには:

さまざまな組み合わせを試してみましたが、これは環境変数にM2_HOMEとM3_HOMEの両方が設定されているためであることがわかりました。いくつかの時間。


BTW:ubuntuからM2_HOMEを削除するには:/ etc / environment
RobAu

0

Maven公式サイトからMavenをダウンロードして抽出します。

アプリケーションディレクトリを/ usr / localに移動します

sudo cp -R apache-maven-X.X.X /usr/local

mvnのユニバーサルアクセス用に/ usr / binにソフトリンクを作成します

sudo ln -s /usr/local/apache-maven-X.X.X/bin/mvn /usr/bin/mvn

mvnインストールの検証

mvn --version

0

出所が保証されていないPPA(個人パッケージアーカイブ)に慣れていない場合、これは代替手段です。

セキュリティの観点から、どこから来たのかわからない場合はインストールしないでください。

リンクされた記事では、既知の信頼できるソースであるapacheから最新のファイルを取得します。最新バージョンを入手できます

\ #mavenの最新バージョンを識別する
    latest = $(curl http://www-us.apache.org/dist/maven/maven-3/ | tac | sed -ne 's / [^ 0-9] * \(\([0-9] \。\)\ {0,3 \} [0-9] \)。* / \ 1 / p '| head -1)
\#ダウンロードする
    wget http://www-us.apache.org/dist/maven/maven-3/$latest/binaries/apache-maven-$latest-bin.tar.gz

次にインストールします

\#開梱
    sudo tar -zxf apache-maven- $ latest-bin.tar.gz -C / usr / local /
\ #symリンクを作成します
    sudo ln -s / usr / local / apache-maven- $ latest / bin / mvn / usr / bin / mvn

上記のリンクと私の投稿で概説されているように


1
複数の質問に同じ回答を投稿しないでください。同じ情報が本当に両方の質問に答える場合、1つの質問(通常は新しい質問)をもう1つの質問の複製として閉じる必要があります。重複として閉じるように投票することでこれを示すことができます。または、そのための十分な評判がない場合は、重複であることを示すフラグ立てます。それ以外の場合は、この質問に対する回答を調整し、同じ回答を複数の場所に貼り付けないでください。
デビッドポスティル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.