编写pom
pom.xml是maven的核心。Project Object Model,定义了项目的基本信息,用于描述项目如何构建,项目依赖等。
首先,新建hello-world文件夹,新建pom.xml文件:
xml头指定xml版本和编码方式,project元素是pom.xml的根元素,modelVersion指定了当前POM的版本。
groupId定义项目属于哪个组,这个组往往和项目所在的组织或公司有关联。如果公司是mycom,项目名是myapp,groupId应该是com.mycom.myapp
artifactId定义了当前Maven项目在组中唯一的ID,我们这个helloworld项目的定义为hello-world,你可以为不同的子模块分配artifactId,如myapp-util、myapp-domain等。
version指定了版本
SNAPSHOT意为”外照“,说明项目还在开发中,不稳定版本
maven的java代码几点注意:
1、应该把项目主代码放在src/main/java/目录下(约定)
2、java类的包名和pom中定义的groupId和artifactId吻合。
编写java代码:com/test/helloworld/HelloWorld.java
使用maven进行编译。
在项目根目录运行:mvn clean compile
项目根目录(我这里是在hello-world文件夹下)
1、clean告诉maven清除target
2、执行resource。resource任务(demo中没有定义项目资源,略过)
3、compile:compile编译,讲项目主代码编译至target/classess目录
clean和resource和compile对应一些maven插件以及插件目标
测试。
主代码与测试代码应该位于独立的目录中,主代码目录默认是src/main/java,测试代码目录默认是src/test/java
测试java:hello-world\src\test\java\com\test\helloworld\HelloWorldTest.java
我们写单元测试用到了junit,所以需要在pom.xml中添加junit依赖
代码中添加了dependencies元素,元素中包含多个dependency声明项目依赖。dependency中有groupId、artifactId等坐标
scope元素表示依赖范围,scope为test表示该依赖只对测试有效,默认值为compile,表示对主代码和测试代码有效。
mvn clean test测试
mvn clean package打包
上面的Helloworld中没有指定打包类型,使用默认打包类型jar。生成一个命名规则为artifactId+version的jar文件,如果需要自定义命名可以用finalName。打包的文件存放在target中。
默认打包的jar是不能让其他maven项目也使用的。
mvn clean install
将项目自动打包并安装在本地maven仓库中,让其他项目可以像junit一样下载使用。
默认打包的jar是不包含main方法的类的。我们可以配置插件:
这样的话mvn clean install会生成两个jar,符合默认命名的是含有main类的。前缀是original的是不包含的。
使用java命令可以执行测试。