新建maven项目
新建一个maven project,填写Group Id,Artifact Id:
点击finish后项目目录下自动生成了pom.xml文件(Project Object Model,项目对象模型):
1 | <project xmlns="http://maven.apache.org/POM/4.0.0" |
<groupId>
定义了项目属于哪个组,一般为公司域名加组名。
<artifactId>
定义了当前maven项目在组中的唯一id。
<version>
定义了当前项目的版本。
<name>
定义了更为友好的项目名称。
<dependencies>
包含一个或多个<dependency>
,上面代码添加了一个依赖——groupId为junit,artifactId为junit,version为4.7。通过这段声明,maven能够自动下载junit-4.7.jar。
编写主代码
在src/main/java目录下的mrbird.leanote.com.hello_maven包下新建HelloMaven.java:
1 | public class HelloMaven { |
进行maven进行编译,右击项目→Run As→Maven build…:
然后点击run:
1 | [INFO] Scanning for projects... |
clean告诉maven清理输出目录target/,compile告诉maven编译项目主代码。从上面的输出可以看出,maven首先执行了celan任务,删除target/目录。接着执行resource任务,将项目主代码编译至F:\workspaces\Spring\hello_maven\target\classes目录。
编写测试代码
在src/test/java目录下的mrbird.leanote.com.hello_maven包下新建HelloMavenTest.java:
1 | public class HelloMavenTest{ |
调用maven执行测试,右击项目→Run As→Maven build…输入clean test→run:
1 | [INFO] Scanning for projects... |
测试通过。
打包运行
compile和test之后,执行package。右击项目→Run As→Maven build…输入clean package→run:
1 | ... |
打包成功,已经生成了jar包。
如果要让别的maven项目能够引用HelloMaven,则还需执行 clean install:
1 | ... |
该操作会将该项目打包后的jar和pom文件拷贝到本地maven仓库。
因为主方法中有main方法,默认打包生成的jar包是不能运行的,如:
1 | F:\workspaces\Spring\hello_maven>java -jar target/hello_maven-0.0.1-SNAPSHOT.jar |
为了生成可执行的jar,需要借助maven-shade-plugin,在pom中配置:
1 | <build> |
配置mainClass为mrbird.leanote.com.hello_maven.HelloMaven。再次执行clean install操作,然后执行jar:
1 | F:\workspaces\Spring\hello_maven>java -jar target/hello_maven-0.0.1-SNAPSHOT.jar |
《Maven实战》读书笔记