我正在尝试按照本教程从源代码(在 Ubuntu 12.04 上)构建 maven:
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
然后,我根据 apache 指南使用 maven 构建了 maven,因此我进入 maven 的签出版本并执行以下操作:
sudo mvn install
这似乎工作正常,没有错误或任何东西,但是当我这样做时
mvn-版本
我的输出是:
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"
这不是我签出的版本,而是我从 apt-get 获取的 maven 版本。mvn install 到底做了什么?它将 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
答案1
呵呵。99% 已经完成了,但被门卫拦住了。如果你说的是真话,那么问题就是mvn install
which 没有安装 mvn。手册页说 maven 没有“安装”开关。它应该打印了“那怎么样?”错误。糟糕的 maven。
规范的从源代码构建例程如下,从适当的目录开始:
./configure
make
sudo make install
制作安装(哦!)。请注意 sudo,这意味着从现在起您将拥有 root 权限,我相信您知道。
我从未自己构建过 maven,但在最后一步之后,我应该会在 /usr/local 的某个地方找到新程序。在本例中是 /usr/local/share?如果幸运的话,mvn
安装后只需从命令行就可以找到新程序,这当然是你想要的。如果没有,你将不得不调整你的 $PATH 环境变量,也许还有你的库搜索配置,但我们希望这是不必要的。