Строительство Maven из источника

Я пытаюсь собрать maven из исходного кода (в Ubuntu 12.04), следуя инструкции:

http://maven.apache.org/guides/development/guide-building-m2. html

Я установил предыдущую версию maven, используя

sudo apt-get install maven

Затем я проверил maven, используя:

git clone https://git-wip-us.apache.org/repos/asf/maven.git maven

Затем я построил maven, используя maven согласно к руководству по Apache, поэтому я перешел к проверочной версии maven и сделал:

sudo mvn install

казалось, что это работает нормально, без ошибок или чего-то еще, но когда я делаю

mvn -version

Мой вывод:

Apache Maven 3.0.4
Maven home: /usr/share/maven
Java version: 1.7.0_40, vendor: Oracle Corporation
Java home: /usr/lib/jvm/jdk1.7.0_40/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.5.0-37-generic", arch: "amd64", family: "unix"

Это не версия, которую я проверил, а версия maven, которую я получил из apt-get. Что конкретно сделала установка mvn? Где он установил maven и как мне обновить команду mvn?

Я копался в выводе mvn-install. Кажется, он создает файлы JAR, например, некоторые из выходных данных:

[INFO] Installing /opt/maven/maven-core/target/maven-core-3.1-SNAPSHOT.jar to /root/.m2/repository/org/apache/maven/maven-core/3.1-SNAPSHOT/maven-core-3.1-SNAPSHOT.jar
[INFO] Installing /opt/maven/maven-core/pom.xml to /root/.m2/repository/org/apache/maven/maven-core/3.1-SNAPSHOT/maven-core-3.1-SNAPSHOT.pom

, если я перехожу в /root/.m2/repository/org/apache/maven/maven-core и делаю ls -la

Я вижу

drwxr-xr-x  9 root root 4096 Sep 25 15:31 .
drwxr-xr-x 33 root root 4096 Sep 25 15:31 ..
drwxr-xr-x  2 root root 4096 Sep 25 15:30 2.0
drwxr-xr-x  2 root root 4096 Sep 25 15:30 2.0.1
drwxr-xr-x  2 root root 4096 Sep 25 15:30 2.0.6
drwxr-xr-x  2 root root 4096 Sep 25 15:30 2.0.9
drwxr-xr-x  2 root root 4096 Sep 25 15:31 2.2.1
drwxr-xr-x  2 root root 4096 Sep 25 15:30 3.0
drwxr-xr-x  2 root root 4096 Sep 25 15:31 3.1-SNAPSHOT

Последняя запись кажется действительно подозрительной. Если я перехожу в каталог и перечисляю его содержимое, я вижу:

-rw-r--r-- 1 root root 557420 Sep 26 08:45 maven-core-3.1-SNAPSHOT.jar
-rw-r--r-- 1 root root   7270 Sep 26 08:44 maven-core-3.1-SNAPSHOT.pom
-rw-r--r-- 1 root root    706 Sep 26 08:45 maven-metadata-local.xml
-rw-r--r-- 1 root root    186 Sep 26 08:45 _maven.repositories

Что отличается от содержимого

/root/.m2/repository/org/apache/maven/maven-core/3.0

. Это:

-rw-r--r-- 1 root root 6629 Sep 25 15:30 maven-core-3.0.pom
-rw-r--r-- 1 root root   40 Sep 25 15:30 maven-core-3.0.pom.sha1
-rw-r--r-- 1 root root  154 Sep 25 15:30 _maven.repositories
0
задан 26 September 2013 в 20:02

1 ответ

Хех. 99% там, но остановился у швейцара. Если вы имели в виду то, что сказали, проблема в том, что mvn install не устанавливает mvn. Страницы руководства говорят, что у maven нет переключателя «установка». Это должно было напечатать «как это?» ошибка. Bad Maven.

Каноническая процедура сборки из источника происходит следующим образом из соответствующего каталога:

./configure
make
sudo make install

Сделать install (d'oh!). Обратите внимание на sudo, то есть корневые привилегии для вас, я уверен, что вы знаете.

Я никогда не создавал maven самостоятельно, но после этого последнего шага я должен ожидать найти новую программу где-нибудь в / usr / local. / usr / local / share, в этом случае? Если повезет, просто mvn из командной строки должен найти новую после установки, и это, конечно, то, что вы хотите. Если нет, вам придется настроить переменную среды $ PATH и, возможно, конфигурацию поиска в библиотеке, но будем надеяться, что в этом нет необходимости.

0
ответ дан 26 September 2013 в 20:02

Другие вопросы по тегам:

Похожие вопросы: