通过使用maven的生命周期和丰富多样的插件,可以方便的将项目代码编译打包为自己需要的构件。
maven默认项目主代码位置src/main/java目录,测试代码位置src/test/java目录。主代码会被打包到最终构件中。
jar包:mvn package 命令的默认打包类型
maven会假设用户javaapp项目目录如下所示:
-
源码:src/main/java/
-
资源文件:src/main/resources
-
编译输出目录:target/classes/
-
包输出目录:target/
maven打jar包有3个比较常用的插件:
maven-jar-plugin为默认打包插件;
maven-shade-plugin可用于打可执行包,需在配置plugin时插入mainClass。
maven-assembly-plugin支持个定制化打包方式。
war包
maven默认web项目的web资源目录为src/main/webapp/,webapp下包含WEB-INF子目录,WEB-INF子目录下包含web.xml文件。
web应用标准打包方式为WAR,一个典型WAR包文件目录结构:
war包至少包含两个子目录:
META-INF——包含打包元数据信息
WEB-INF——包含web.xml/classes/lib,classes和lib在运行时会被加入到classpath中
其他命令:
mvn dependency:list命令:可展示所有已解析依赖
mvn dependency:tree命令:可展示依赖树
maven clean:清理输出目录 target/
maven comple:编译目录主代码,maven核心插件compiler默认只支持java1.3编译
在执行命令行时通过命令行配置插件参数:使用-D参数键=参数值的形式(-D为java自带功能,通过命令行设置java系统属性)