为了更好地了解Maven对Java 项目的构建、依赖管理,所以这里准备自己配置linux的Maven环境,前文已经安装好了JDK,可以查看安装JDK。这里安装Maven。
-
下载Maven:下载地址
后缀为tar.gz的是Linux和Mac版本,后缀为zip的是Windows版本
-
解压,apache-maven-3.6.2-bin.tar.gz为安装包,/opt/module/为安装目录
[root@walter101 software]# tar -zxvf apache-maven-3.6.2-bin.tar.gz -C /opt/module/ -
配置环境变量
编辑/etc/profile,在末尾添加MAVEN_HOME环境变量:export MAVEN_HOME=/opt/module/apache-maven-3.6.2 export PATH=${PATH}:${MAVEN_HOME}/bin
结合上次安装JDK是的环境变量,则为:
JAVA_HOME=/opt/module/jdk1.8.0_221 JRE_HOME=/opt/module/jdk1.8.0_221/jre CLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar:${JRE_HOME}/lib MAVEN_HOME=/opt/module/apache-maven-3.6.2 PATH=${PATH}:${JAVA_HOME}/bin:${MAVEN_HOME}/bin export PATH JAVA_HOME CLASSPATH MAVEN_HOME
使环境变量生效:
[root@walter100 apache-maven-3.6.2]# source /etc/profile -
检查Maven是否安装成功
[root@walter100 apache-maven-3.6.2]# mvn -v Apache Maven 3.6.2 (40f52333136460af0dc0d7232c0dc0bcf0d9e117; 2019-08-27T11:06:16-04:00) Maven home: /opt/module/apache-maven-3.6.2 Java version: 1.8.0_221, vendor: Oracle Corporation, runtime: /opt/module/jdk1.8.0_221/jre Default locale: en_US, platform encoding: UTF-8 OS name: "linux", version: "3.10.0-957.el7.x86_64", arch: "amd64", family: "unix"
-
配置Maven config/seetings.xml
指明本地Maven库:<localRepository>/opt/module/apache-maven-3.6.2/repository</localRepository>
国内用户需要配置国内下载依赖包的镜像库,比如阿里云:
<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>
如果需要,请设置代理:
<proxy> <id>optional</id> <active>true</active> <protocol>http</protocol> <username>proxyuser</username> <password>proxypass</password> <host>proxy.host.net</host> <port>80</port> <nonProxyHosts>local.net|some.host.com</nonProxyHosts> </proxy>
-
测试一下,生成一个项目
[root@walter100 project]# mvn archetype:generate ......这里会下载很多包,可能会失败(我就失败了),那么在运行一下上条命令,可能就能成功(我就成功了)。 [INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0) Choose archetype: 1: internal -> org.apache.maven.archetypes:maven-archetype-archetype (An archetype which contains a sample archetype.) 2: internal -> org.apache.maven.archetypes:maven-archetype-j2ee-simple (An archetype which contains a simplifed sample J2EE application.) 3: internal -> org.apache.maven.archetypes:maven-archetype-plugin (An archetype which contains a sample Maven plugin.) 4: internal -> org.apache.maven.archetypes:maven-archetype-plugin-site (An archetype which contains a sample Maven plugin site. This archetype can be layered upon an existing Maven plugin project.) 5: internal -> org.apache.maven.archetypes:maven-archetype-portlet (An archetype which contains a sample JSR-268 Portlet.) 6: internal -> org.apache.maven.archetypes:maven-archetype-profiles () 7: internal -> org.apache.maven.archetypes:maven-archetype-quickstart (An archetype which contains a sample Maven project.) 8: internal -> org.apache.maven.archetypes:maven-archetype-site (An archetype which contains a sample Maven site which demonstrates some of the supported document types like APT, XDoc, and FML and demonstrates how to i18n your site. This archetype can be layered upon an existing Maven project.) 9: internal -> org.apache.maven.archetypes:maven-archetype-site-simple (An archetype which contains a sample Maven site.) 10: internal -> org.apache.maven.archetypes:maven-archetype-webapp (An archetype which contains a sample Maven Webapp project.) Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 7: (缺省默认为7,quickstart项目) ......又会下载一些包 Define value for property 'groupId': com.toastmaster.sstmc (一般命名为com.公司名) Define value for property 'artifactId': SmartOfficer(项目名) Define value for property 'version' 1.0-SNAPSHOT: : (缺省默认为1.0-SNAPSHOT) Define value for property 'package' com.toastmaster.sstmc: : (缺省默认为com.toastmaster.sstmc) Confirm properties configuration: groupId: com.toastmaster.sstmc artifactId: SmartOfficer version: 1.0-SNAPSHOT package: com.toastmaster.sstmc Y: : Y(缺省为Y,确认以上信息) [INFO] ---------------------------------------------------------------------------- [INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-quickstart:1.1 [INFO] ---------------------------------------------------------------------------- [INFO] Parameter: basedir, Value: /opt/project [INFO] Parameter: package, Value: com.toastmaster.sstmc [INFO] Parameter: groupId, Value: com.toastmaster.sstmc [INFO] Parameter: artifactId, Value: SmartOfficer [INFO] Parameter: packageName, Value: com.toastmaster.sstmc [INFO] Parameter: version, Value: 1.0-SNAPSHOT [INFO] project created from Old (1.x) Archetype in dir: /opt/project/SmartOfficer [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS(build成功) [INFO] ------------------------------------------------------------------------ [INFO] Total time: 04:25 min [INFO] Finished at: 2019-09-16T10:23:32-04:00 [INFO] ------------------------------------------------------------------------
-
Done!Maven安装成功,环境配置无误。