maven简介
maven官网:Apache Maven 是一个软件项目管理和理解工具。基于项目对象模型 (POM) 的概念,Maven 可以从一条中心信息管理项目的构建、报告和文档。
更多可参考资料:Maven in 5 Minutes | Maven Getting Started Guide | Maven 菜鸟教程 | Maven介绍 廖雪峰的网站 | 2021_Maven基础实战入门_B站
我目前需要的是:基于maven的Java项目目录结构。
a-maven-project
├── pom.xml
├── src
│ ├── main
│ │ ├── java
│ │ └── resources
│ └── test
│ ├── java
│ └── resources
└── target
ubuntu20+maven+vscode
maven的安装
# ubuntu20.04中的maven3.6.3存在bug
# [ERROR] Caused by: Could not initialize class com.google.inject.internal.cglib.core.$MethodWrapper
# 详见:https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=980467
# 不要使用包管理器安装:sudo apt install maven
# 下载maven
wget https://dlcdn.apache.org/maven/maven-3/3.8.4/binaries/apache-maven-3.8.4-bin.tar.gz
tar -zxvf apache-maven-3.8.4-bin.tar.gz
rm apache-maven-3.8.4-bin.tar.gz
# 添加环境变量
export MAVEN_HOME="/home/dacao/Documents/apache-maven-3.8.4/bin"
export PATH="$PATH:$MAVEN_HOME"
# 检查配置是否成功
➜ ~ mvn -v
Apache Maven 3.8.4 (9b656c72d54e5bacbed989b64718c159fe39b537)
Maven home: /home/dacao/Documents/apache-maven-3.8.4
Java version: 17.0.1, vendor: Private Build, runtime: /usr/lib/jvm/java-17-openjdk-amd64
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "5.13.0-27-generic", arch: "amd64", family: "unix"
vscode编辑器插件
Maven for Java插件:VS Code 的 Maven 扩展。它提供了执行 Maven 命令的快捷方式,改善了使用 Maven 的 Java 开发人员的用户体验。
留意命令行,插件本质是执行下面的命令。
mvn org.apache.maven.plugins:maven-archetype-plugin:3.1.2:generate -DarchetypeArtifactId="maven-archetype-quickstart" -DarchetypeGroupId="org.apache.maven.archetypes" -DarchetypeVersion="1.0-alpha-1" -DgroupId="io.github.da1234cao" -DartifactId="logback-test"
奈何无法下载内容,使用mvn -X
可以得到下面内容。我们可以看到配置文件的位置。
[DEBUG] Reading global settings from /home/dacao/Documents/apache-maven-3.8.4/conf/settings.xml
[DEBUG] Reading user settings from /home/dacao/.m2/settings.xml
[DEBUG] Reading global toolchains from /home/dacao/Documents/apache-maven-3.8.4/conf/toolchains.xml
[DEBUG] Reading user toolchains from /home/dacao/.m2/toolchains.xml
[DEBUG] Using local repository at /home/dacao/.m2/repository
[DEBUG] Using manager EnhancedLocalRepositoryManager with priority 10.0 for /home/dacao/.m2/repository
[INFO] Scanning for projects...
[DEBUG] Extension realms for project org.apache.maven:standalone-pom:pom:1: (none)
[DEBUG] Looking up lifecycle mappings for packaging pom from ClassRealm[plexus.core, parent: null]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
经过一晚上的折腾,我也没有解决,maven+vscode的环境配置,放弃,换条路。
IntelliJ IDEA
IntelliJ IDEA官网。这里我们使用snap进行安装。
sudo snap install intellij-idea-community --classic
在内部,我们创建一个maven
项目。操作过程可参考视频:Logback从入门到精通
代码中需要使用logback。所以,我们在pom.xml
中插入如下内容。xml
的介绍可参考《Java核心卷二》第三章 XML。
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.33</version>
</dependency>
<!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.10</version>
</dependency>
运行输出如下。