Maven管理JAVA项目基础pom.xml文件参数实例

maven是专门用于构建和管理Java相关项目的管理工具,提供了项目对象模型(POM)文件的新概念来管理项目的构建相关性和文档,其中pom.xml文件描述了maven项目的基本信息。

Maven管理JAVA项目基础pom.xml文件参数实例

所属分类: JAVA
专题标签: Maven 依赖 管理

maven简介

maven是一个用于项目管理的综合工具。

  1. 提供了开发人员构建一个完整的生命周期框架。
  2. 可以自动完成项目的基础工具建设。
  3. 应对多个开发团队环境时,可以设置按标准在非常短的时间里完成配置工作。
  4. 让开发人员的工作更轻松,同时创建报表,检查,构建和测试自动化设置。
  5. 最强大的功能就是能够自动下载项目依赖库,这也是最实用的地方。
  6. 是专门用于构建和管理Java相关项目的管理工具。

maven是意第绪语,依地语(犹太人使用的国际语),表示专家的意思。
用maven管理Java 项目,你就是专家了,哈哈哈!

pom.xml的作用

POM代表项目对象模型,是maven中工作的基本单位,是一个xml文件,始终保存在项目根目录中的pom.xml文件。
建立一个maven项目,maven会检查你的pom.xml文件,以确定哪些依赖下载。
首先,maven将从本地资源库获得maven的本地资源库依赖资源。
如果没有找到,会从默认的maven中央存储库查找下载。
因此,pom.xml是配置项目依赖关系的重要文件。

pom.xml实例解析

取用一个单项目pom.xml并对其解释,便于理解其配置和运作方式。

  1. <project xmlns="http://maven.apache.org/POM/4.0.0"
  2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
  4. http://maven.apache.org/maven-v4_0_0.xsd">
  5. <!-- 指定当前POM模型的版本,对于maven2,maven3只能是4.0.0 -->
  6. <modelVersion>4.0.0</modelVersion>
  7. <!-- 项目编号,独一无二的。可以理解为父级package -->
  8. <groupId>com.mebugs</groupId>
  9. <!-- 项目名称,与项目编号组成唯一的项目标识 -->
  10. <artifactId>mebugsWeb</artifactId>
  11. <!-- 项目的版本 -->
  12. <version>1.0</version>
  13. <!-- 项目产生的构件类型,例如jar、war,插件可以创建他们自己的构件类型 -->
  14. <packaging>war</packaging>
  15. <!-- 项目名称,用来声明一个对用户而言比较友好的项目名称,文档使用 -->
  16. <name>Mebugs Maven Webapp</name>
  17. <!-- 项目主页的URL,maven产生的文档用。非必须 -->
  18. <url>http://maven.apache.org</url>
  19. <!-- 项目的详细描述,文档用。非必须 -->
  20. <description>A maven project for mebugs</description>
  21. <!-- 常用的版本号统一设置 -->
  22. <properties>
  23. <!-- 定义spring的版本 -->
  24. <spring.version>4.3.10.RELEASE</spring.version>
  25. <!-- 定义jackson的版本 -->
  26. <jackson.version>2.9.3</jackson.version>
  27. <!-- 项目编码方式 -->
  28. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  29. <!-- jdk版本 -->
  30. <jdk.version>1.8</jdk.version>
  31. </properties>
  32. <!-- 依赖列表 -->
  33. <dependencies>
  34. <!-- 基础的依赖配置,版本号自行填写 -->
  35. <dependency>
  36. <groupId>log4j</groupId>
  37. <artifactId>log4j</artifactId>
  38. <version>1.2.17</version>
  39. <!-- 依赖类型,可不写,默认类型是jar -->
  40. <type>jar</type>
  41. <!-- 依赖范围,可不写 -->
  42. <scope>compile</scope>
  43. </dependency>
  44. <!-- 依赖配置,取用配置的版本 -->
  45. <dependency>
  46. <groupId>org.springframework</groupId>
  47. <artifactId>spring-beans</artifactId>
  48. <!-- 取用上方提供的spring版本 -->
  49. <version>${spring.version}</version>
  50. </dependency>
  51. <!-- 依赖传递配置 -->
  52. <dependency>
  53. <groupId>org.springframework</groupId>
  54. <artifactId>spring-core</artifactId>
  55. <version>${spring.version}</version>
  56. <!-- 依赖传递,用于解决版本冲突 -->
  57. <exclusions>
  58. <exclusion>
  59. <groupId>commons-logging</groupId>
  60. <artifactId>commons-logging</artifactId>
  61. </exclusion>
  62. </exclusions>
  63. </dependency>
  64. <dependency>
  65. <groupId>commons-logging</groupId>
  66. <artifactId>commons-logging</artifactId>
  67. <version>1.2</version>
  68. </dependency>
  69. <!-- 外在依赖与取用 -->
  70. <dependency>
  71. <groupId>com.mebugsapi</groupId>
  72. <artifactId>mebugsApi</artifactId>
  73. <version>1.0</version>
  74. <scope>system</scope>
  75. <!-- 比如用于自身提供的业务jar包 -->
  76. <systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/mebugsApi.jar</systemPath>
  77. </dependency>
  78. </dependencies>
  79. <!-- 构建项目所需要的信息 -->
  80. <build>
  81. <!-- 产生的构件的文件名,默认值是${artifactId}-${version} -->
  82. <finalName>mebugsWeb</finalName>
  83. <!-- 子项目可以引用的默认插件信息 -->
  84. <pluginManagement>
  85. <plugins>
  86. <!-- 添加插件,编译插件 -->
  87. <plugin>
  88. <groupId>org.apache.maven.plugins</groupId>
  89. <artifactId>maven-compiler-plugin</artifactId>
  90. <version>3.0</version>
  91. <configuration>
  92. <source>${jdk.version}</source>
  93. <target>${jdk.version}</target>
  94. <showWarnings>false</showWarnings>
  95. </configuration>
  96. </plugin>
  97. </plugins>
  98. </pluginManagement>
  99. <!-- 描述项目相关的所有资源路径列表,例如:属性文件,这些资源被包含在最终的打包文件里。-->
  100. <resources>
  101. <resource>
  102. <directory>src/main/java</directory>
  103. <!-- 包含 -->
  104. <includes>
  105. <include>**/*.xml</include>
  106. </includes>
  107. </resource>
  108. <resource>
  109. <directory>src/main/resources/</directory>
  110. <includes>
  111. <include>**</include>
  112. </includes>
  113. </resource>
  114. </resources>
  115. </build>
  116. </project>

补充说明

其他想要依赖的包,对应的dependency,在这个网站找。
http://mvnrepository.com/
可以再网站中一键生成dependency节点配置项。
如下图中所示: