Maven来自意第绪语,意思是学识渊博的人或者专家。这里Maven指的是Apache的开源项目,也是进行Java项目管理的工具。用来帮助构建Java项目,方便不同项目之间共享Jar包。
当我们在学习一门编程语言的时候,首先会创建一个Hello World项目,以便能够快速地了解如何使用它。
比如我们在学习Python的时候,我们创建下面的项目:
demo.py
print('Hello World')
使用python3运行文件,
> python3 demo.py
Hello World
这就是最小的Python项目了。
当我们学习Java的时候,可以创建类似的项目,代码稍微复杂一点,
App.java
public class App {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
然后我们运行下面的命令来编译和运行这个项目,最后看到输出的结果跟上面的Python项目一样,
> javac App.java
> java App
Hello World
除了书写的复杂度不同之外,Python的包管理器pip跟Java的包管理工具也有很大的不同,比如Python中引入requests包,只需要像下面这样使用即可,
安装requests包
> python3 -m pip install requests
demo.py
# print('Hello World')
import requests
r = requests.get('https://www.baidu.com')
print(r.status_code)
运行结果如下,
> python3 demo.py
200
上面讲了那么多,只是想说明,如果使用Maven来管理依赖,可不像Python使用pip那么简单!Maven需要单独的pom.xml文件来配置Jar包依赖
总之,要创建一个依赖第三方Jar包的最小Java项目,你很难徒手撸出来!
Maven官方的Maven in 5 Minutes给我们提供了一个快速创建Maven项目的例子,
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
这个项目由Maven的archetype产生,你可以理解为预置的项目结构,当运行mvn archetype:generate的时候,Maven会从远程仓库获取对应的模板,然后帮我们创建项目。
但是,这个项目还不够简单,pom.xml包含挺多内容,还有就是总是碰到archetype文件下载不下来的问题。
能否使用Maven徒手撸一个最小的Java项目?答案是肯定的,请看下面的项目!
step-1 创建项目
创建maven-smallest-project目录
cd maven-smallest-project
step-2 添加目录和文件
目录结构(我这里通过wsl查看的)
/mnt/d/docs/blog/maven-smallest-project# tree
.
├── pom.xml
└── src
└── main
└── java
└── com
└── my
└── demo
└── App.java
6 directories, 2 files
src/main/java/com/my/demo/App.java
package com.my.demo;
public class App {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
pom.xml
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.my.demo</groupId>
<artifactId>my-app</artifactId>
<version>1.0</version>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
</project>
step-3 编译运行
PS D:\docs\blog\maven-smallest-project> mvn clean package
[INFO] Scanning for projects...
...
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ my-app ---
[INFO] Building jar: D:\docs\blog\maven-smallest-project\target\my-app-1.0.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.648 s
[INFO] Finished at: 2021-03-10T17:19:55+08:00
[INFO] ------------------------------------------------------------------------
PS D:\docs\blog\maven-smallest-project> java -cp .\target\my-app-1.0.jar com.my.demo.App
Hello World
上面就是徒手创建的Maven项目代码,总共2个文件,16行代码(不包括空行),希望对需要的朋友有帮助。
注意
之所以想使用Maven创建最小Java项目,本身是出于创建演示项目的需要,同时希望使用Maven的包管理功能,如果您需要应用于生产环境项目,您还需要更多的配置。
另外,如果您使用框架开发,比如Spring Boot,建议使用框架推荐的方法创建项目,以免浪费时间进行配置。
声明,以上代码经过测试