Maven编译Java项目但是没有out目录未有任何文件 maven项目没有target_maven


一、安装
1、maven依赖jdk需要先安装jdk,且maven的解压缩版是jdk事先编译好的,高版本jdk编译的maven在低版本jdk上运行会报错:

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/maven/cli/MavenCli : Unsupported major.minor version xxx
2、设置环境变量 有些机器可能需要重启;

二、组件
1、pom.xml
2、本地仓库仓库:项目依赖包首先到本地仓库去查找 找到则引用 找不到就从全球中央仓库下载(需要联网)
maven安装目录中lib目录下maven-model-builder-3.2.2.jar中pom-4.0.0.xml中配置了中央仓库地址<url>http://repo.maven.apache.org/maven2</url>
不配置有一个默认位置(win7:C:UsersAdministrator.m2repository),修改conf下配置文件settings.xml 将<localrepository>改为具体路径
3、目录约定:
项目目录
src
--main
----java 存放java代码
----resources 存放配置文件
--test
----java
----resources

三、命令
1、mvn compile 编译,编译包放到target目录
2、mvn test 测试在target目录生成测试报告目录surefire-reports
3、mvn clean 清空target
4、mvn package 编译测试然后打包成一个jar包 放到target目录下
5、mvn install 安装:将当前项目编译测试打包安装到本地仓库里
6、mvn archetype:generate 引导式创建一个项目
eg: mvn archetype:generate -DgroupId=com.wjy.maven -DartifactId=maven-ch03 -Dversion=0.0.1-SNAPSHOT

四、在eclipse创建maven项目:
1、手动安装m2eclipse插件
2、不用安装的插件 要使用本机解压包的maven做如下配置
Window-->Preferences-->Maven-->Installations 和 User Settings配置
3、创建maven project 使用骨架maven-archetype-webapp创建web工程
4、修改pom.xml文件 添加dependency依赖 可以到http://mvnrepository.com/直接查找 然后可以找到jar maven标识 直接拷进来

五、maven隐藏变量
basedir项目根目录basedir项目根目录{project.build.directory} 构建目录,缺省为target
project.build.outputDirectory构建过程输出目录,缺省为target/classesproject.build.outputDirectory构建过程输出目录,缺省为target/classes{project.build.finalName} 产出物名称,缺省为project.artifactId−project.artifactId−{project.version}
project.packaging打包类型,缺省为jarproject.packaging打包类型,缺省为jar{http://project.xxx} 当前pom文件的任意节点的内容

六、maven依赖和传递特性
scope表示当前依赖的有效范围
compile 编译和打包时依赖 默认scope
provided 编译和测试有效 打成war时无效 例如 servlet-api 因为该包已经在tomcat中提供
runtime 运行时依赖 编译时不依赖 例如jdbc
test 测试时依赖 编译和打包都不会加进去 依赖不会传递

间接依赖
A-->L1.0 直接依赖
B-->L2.0 直接依赖
C-->A,B 间接依赖 C中L的版本取决于A,B在C的pom文件的先后顺序 取在前面的位置的版本

当依赖级别不相同时候 取层级最短的那个

排除依赖 <exclutions>
七、maven聚合和继承特性
建立pom项目来聚合多个模块在一起管理
建立一个parent项目(同时也是pom项目)存放相同的常量 属性 共同依赖 这样继承它的子模块就会继承这些共同属性

关于版本:0.0.1-里程碑
SNAPSHOT:开发人员开发中的版本,开发快照
alpha:内部人员测试版本
beta:公测版本
Release(RC):释放版本 稳定版本
GA():正式应用版本
maven 常用SNAPSHOT和Release

八、maven插件
1、三个生命周期:clean、compile、site

九、本地仓库管理器

十、maven发布
第一种(传统方式):maven项目执行clean package 到target目录取出war包放到tomcat webapps下 启动tomcat访问
第二种:使用拷贝插件拷贝war包到tomcat下 手动启动tomcat
第三种:使用jetty插件