刚装完Maven最怕的就是环境没配好,后面所有操作都会报错。先打开终端输入mvn -v,如果看到类似这样的输出就说明安装成功了:
bash复制Apache Maven 3.9.6
Maven home: /usr/local/maven
Java version: 1.8.0_301
遇到过最坑的情况是JAVA_HOME没配好,Maven会报JAVA_HOME not found。这时候先检查Java环境:
bash复制which java
readlink -f $(which java)
这个命令链能帮你找到真实的Java安装路径,我遇到过openKylin自带的Java软链接指向错误的情况。
注意:如果使用Oracle JDK,建议手动设置JAVA_HOME到/etc/profile,比如:
bash复制export JAVA_HOME=/usr/lib/jvm/java-8-oracle
验证环节还有个隐藏技巧:用mvn help:system命令。这个命令会测试Maven能否正常下载依赖,同时会在~/.m2目录生成本地仓库。第一次执行可能会比较慢,因为要下载大量索引文件。
新手最常犯的错误就是手动创建项目结构。推荐直接用Maven Archetype生成:
bash复制mvn archetype:generate -DgroupId=com.example -DartifactId=demo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
但实际开发中我更推荐用Spring Initializr的方式:
bash复制curl https://start.spring.io/starter.tgz -d dependencies=web,lombok -d javaVersion=1.8 -d type=maven-project | tar -xzvf -
这个命令会生成包含Spring Web和Lombok的Java 8项目,解压后直接可用。
项目结构有个关键点要注意:openKylin默认的编码是UTF-8,但有些老项目可能需要手动配置:
xml复制<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
pom.xml里添加依赖后,经常遇到依赖冲突。这时候mvn dependency:tree命令就是救命稻草:
bash复制mvn dependency:tree -Dverbose -Dincludes=org.slf4j
我整理了几个常见问题的解决方案:
<exclusions>标签排除传递依赖对于国内开发者,强烈建议配置阿里云镜像:
xml复制<mirror>
<id>aliyunmaven</id>
<url>https://maven.aliyun.com/repository/public</url>
<mirrorOf>central</mirrorOf>
</mirror>
打包前建议先运行测试:
bash复制mvn clean test
遇到过最头疼的问题是测试用例在openKylin上失败,这时候可以加参数跳过测试:
bash复制mvn package -DskipTests
打包完成后,部署到服务器可以用这个命令:
bash复制scp target/demo-0.0.1.jar user@server:/opt
如果是Spring Boot项目,还可以用这个命令直接运行:
bash复制java -jar demo-0.0.1.jar --server.port=8081
在openKylin上运行大型项目时,可能需要调整Maven内存设置:
bash复制export MAVEN_OPTS="-Xms512m -Xmx1024m"
对于多模块项目,推荐使用并行构建:
bash复制mvn -T 4 clean install
还可以通过profiles实现环境隔离:
xml复制<profile>
<id>dev</id>
<properties>
<env>development</env>
</properties>
</profile>
最后分享一个实用技巧:用mvnw代替mvn可以避免环境不一致问题。这个wrapper脚本会自动下载指定版本的Maven,特别适合团队协作。