Maven学习笔记二eclipse如何使用 Maven、Maven目录pom.xml文件的解析、maven 和maven项目之间的关系

Eclipse如何使用 Maven、Maven目录pom.xml文件的解析、maven 和maven项目之间的关系

1Eclipse如何使用 Maven

注意事项:要想在eclipse中使用maven那么就要确定eclipse支持的jdk的版本;
如果eclipse允许是用的是1.7 你的jdk是1.8 虽然能够使用但是1.8版本更新的内容将会被eclipse过滤

如图:

Maven学习笔记二eclipse如何使用 Maven、Maven目录pom.xml文件的解析、maven 和maven项目之间的关系


Maven学习笔记二eclipse如何使用 Maven、Maven目录pom.xml文件的解析、maven 和maven项目之间的关系

在确定版本相同的情况下只需要在eclipse中配置相关Maven路径即可

如图:

Maven学习笔记二eclipse如何使用 Maven、Maven目录pom.xml文件的解析、maven 和maven项目之间的关系


Maven学习笔记二eclipse如何使用 Maven、Maven目录pom.xml文件的解析、maven 和maven项目之间的关系

  这样eclipse 就配置完成了 就可以新建Maven项目

Maven学习笔记二eclipse如何使用 Maven、Maven目录pom.xml文件的解析、maven 和maven项目之间的关系

这里如果不选择简单的选项之后会进入如图所示的页面选择选项:

Maven学习笔记二eclipse如何使用 Maven、Maven目录pom.xml文件的解析、maven 和maven项目之间的关系

这些选项的具体介绍可以去百度一下 ;所以为了简化创建建议勾选简单的创建;

但是Maven 新建web 项目会报错 (pom.xml)

如图:

Maven学习笔记二eclipse如何使用 Maven、Maven目录pom.xml文件的解析、maven 和maven项目之间的关系


是因为 src下的main下的webapp下的web.xml缺失,那么自己根据工具生成 先选择本项目然后右键JAVEEE Tools 

如图:

Maven学习笔记二eclipse如何使用 Maven、Maven目录pom.xml文件的解析、maven 和maven项目之间的关系
同样如果在webapp下创建jsp项目是会报错的,那是因为eclipse的编译器没有关联tomcat
所以要在preferences中点击server/Runtime Environme
然后点击properties/javaBuild Path
点击add library 添加tomcat库完成

Maven学习笔记二eclipse如何使用 Maven、Maven目录pom.xml文件的解析、maven 和maven项目之间的关系

Maven学习笔记二eclipse如何使用 Maven、Maven目录pom.xml文件的解析、maven 和maven项目之间的关系

Maven学习笔记二eclipse如何使用 Maven、Maven目录pom.xml文件的解析、maven 和maven项目之间的关系


2Maven目录、pom.xml文件的解析

Maven学习笔记二eclipse如何使用 Maven、Maven目录pom.xml文件的解析、maven 和maven项目之间的关系

/src 源代码目录
   /src/main 工程源码目录
/src/mian/java 工程源代码目录
/src/main/resource 工程Java的资源项目
/src/main/webapp web资源文件
   /src/test 单元测试目录
/src/test/java
   /target 输出目录,所有的输出都存放在这个目录下
/target/classes 编译之后的class文件

Pom.mxl详解

Maven学习笔记二eclipse如何使用 Maven、Maven目录pom.xml文件的解析、maven 和maven项目之间的关系

Maven学习笔记二eclipse如何使用 Maven、Maven目录pom.xml文件的解析、maven 和maven项目之间的关系

介绍 scope各个值的参考
compile:默认的scope。任何定义在compile scope下的依赖将会在所有的class paths下可用。maven工程会将其打包到最终的arifact中。如果你构建一个WAR类型的artefact,那么在compile scope下引用的JAR文件将会被集成到WAR文件内。  
  
provided:这个scope假定对应的依赖会由运行这个应用的JDK或者容器来提供。最好的例子就是servlet API。任何在provided scope下定义的依赖在构建时的类路径里是可用的,但是不会被打包到最终的artifact中。如果是一个WAR的文件,servlet API在构建时的类路径里是可用的,但是并不会被打包到WAR文件中。  
  
runtime:在runtime scope下定义的依赖只会在运行期可用,而在构建期的类路径下不可用。这些依赖将会被打包到最终的artifact中。比如你有一个基于web的应用需要在运行时访问MySQL数据库。你的代码没有任何MySQL数据库驱动的硬依赖。你的代码仅仅是基于JDBC API来编写,在构建期并不需要MySQL数据库驱动。然而,在运行期,就需要相应的驱动来操作MySQL数据库了。因此,这个驱动应该被打包到最终的artifact中。  
  
test:只用于测试变异的依赖(比如JUnit),execution必须定义在test scope下。这些依赖不会被打包到最终的artefact中。  
  
system:于provided scope很像。唯一的区别在于,在system scope中,你需要告诉Mave如何去找到这个依赖。如果你要引用的依赖在Maven仓库中不存在时,就可以用这个scope。不推荐使用system依赖。  
  
import:从其它的pom文件中导入依赖设置。  


MAVEN 插件 表示在maven构建构成中执行的jar名称 插件名 -maven-plugin命名
可以通过jar包中 plugins.xml中找到所有的配置定义

3maven 和maven项目之间的关系

1继承

Maven学习笔记二eclipse如何使用 Maven、Maven目录pom.xml文件的解析、maven 和maven项目之间的关系

Maven学习笔记二eclipse如何使用 Maven、Maven目录pom.xml文件的解析、maven 和maven项目之间的关系