从源代码构建 maven

从源代码构建 maven

我正在尝试按照本教程从源代码(在 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 installwhich 没有安装 mvn。手册页说 maven 没有“安装”开关。它应该打印了“那怎么样?”错误。糟糕的 maven。

规范的从源代码构建例程如下,从适当的目录开始:

./configure
make
sudo make install

制作安装(哦!)。请注意 sudo,这意味着从现在起您将拥有 root 权限,我相信您知道。

我从未自己构建过 maven,但在最后一步之后,我应该会在 /usr/local 的某个地方找到新程序。在本例中是 /usr/local/share?如果幸运的话,mvn安装后只需从命令行就可以找到新程序,这当然是你想要的。如果没有,你将不得不调整你的 $PATH 环境变量,也许还有你的库搜索配置,但我们希望这是不必要的。

相关内容