Java中Maven的l解析
⼀.什么是pom
pom作为项⽬对象模型。通过xml表⽰maven项⽬,使⽤l来实现。主要描述了项⽬:包括配置⽂件;开发者需要遵循的规则,缺陷管理系统,组织和licenses,项⽬的
url,项⽬的依赖性,以及其他所有的项⽬相关因素。
⼆.内容注解
1<!-- 当前POM模型的版本 -->
2<modelVersion>4.0.0</modelVersion>
3
4<!-- ⽗项⽬坐标 -->
5<parent>
6<groupId>项⽬组织唯⼀的标识符()</groupId>
7<artifactId>项⽬的唯⼀的标识符(项⽬名称)</artifactId>
8<version>版本号</version>
9<!--⽗项⽬的l⽂件的相对路径。相对路径允许你选择⼀个不同的路径。默认值是../l。Maven⾸先在构建当前项⽬的地⽅寻⽗项⽬的pom,其次在⽂件系统的这个位置(relativePath位置),然后在本地仓库,最后在远程仓库寻 10<relativePath></relativePath>
11</parent>
12
13
14<!-- 项⽬坐标 -->
15<groupId>项⽬组织唯⼀的标识符()</groupId>
16<artifactId>项⽬的唯⼀的标识符((项⽬名称))</artifactId>
17<packaging>打包类型</packaging>
18<version>版本号</version>
19
20<!-- 项⽬信息 -->
21<name>名称</name>
22<description>描述</description>
23<url>⽹址</url>
24<inceptionYear>⼯程的初始时间</inceptionYear>
25
26<!-- 属性 -->
27<properties>
28<!-- 定义⼀些常量 -->
29<jdk.version>1.7</jdk.version>
30<servlet.api.version>3.0.1</servlet.api.version>
31<jsp.api.version>2.1</jsp.api.version>
32<junit.version>4.11</junit.version>
33<mysql.version>5.1.21</mysql.version>
34<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
35</properties>
36
37<!-- 依赖管理,⽗项⽬中⽤来统⼀管理依赖的,⼦项⽬中直接使⽤dependencies -->
38<dependencyManagement>
39<dependencies>
40<dependency>
41<groupId>javax.servlet</groupId>
42<artifactId>javax.servlet.api</artifactId>
43<version>3.0.1</version>
44<scope>provided</scope>
45</dependency>
46</dependencies>
47</dependencyManagement>
48
49<!-- 依赖项 -->
50<dependencies>
51<dependency>
52<groupId>javax.servlet</groupId>
53<artifactId>javax.servlet.api</artifactId>
54<version>3.0.1</version>
55<scope>provided</scope>
56</dependency>
57</dependencies>
58
59<!--构建项⽬需要的信息-->
60<build>
61<!--该元素设置了项⽬源码⽬录,当构建项⽬的时候,构建系统会编译⽬录⾥的源码。该路径是相对于l的相对路径。-->
62<sourceDirectory></sourceDirectory>
63<!--该元素设置了项⽬脚本源码⽬录,该⽬录和源码⽬录不同:绝⼤多数情况下,该⽬录下的内容会被拷贝到输出⽬录(因为脚本是被解释的,⽽不是被编译的)。-->
64<scriptSourceDirectory></scriptSourceDirectory>
65<!--该元素设置了项⽬单元测试使⽤的源码⽬录,当测试项⽬的时候,构建系统会编译⽬录⾥的源码。该路径是相对于l的相对路径。-->
66<testSourceDirectory></testSourceDirectory>
java xml是什么67<!--被编译过的应⽤程序class⽂件存放的⽬录。-->
68<outputDirectory></outputDirectory>
69<!--被编译过的测试class⽂件存放的⽬录。-->
70<testOutputDirectory></testOutputDirectory>
71<!--使⽤来⾃该项⽬的⼀系列构建扩展-->
72<extensions>
73<!--描述使⽤到的构建扩展。-->
74<extension>
75<!--构建扩展的groupId-->
76<groupId></groupId>
77<!--构建扩展的artifactId-->
78<artifactId></artifactId>
79<!--构建扩展的版本-->
80<version></version>
81</extension>
82</extensions>
83
84<!--当项⽬没有规定⽬标(Maven2 叫做阶段)时的默认值-->
85<defaultGoal></defaultGoal>
86
87<!--这个元素描述了项⽬相关的所有资源路径列表,例如和项⽬相关的属性⽂件,这些资源被包含在最终的打包⽂件⾥。-->
88<resources>
89<!--这个元素描述了项⽬相关或测试相关的所有资源路径-->
90<resource>
91<!--描述了资源的⽬标路径。该路径相对target/classes⽬录(例如${project.build.outputDirectory})。举个例⼦,如果你想资源在特定的包⾥(org.ssages),你就必须该元素设置为org/apache/maven/messages。然⽽,如果 92<targetPath></targetPath>
93<!--是否使⽤参数值代替参数名。参数值取⾃properties元素或者⽂件⾥配置的属性,⽂件在filters元素⾥列出。-->
94<filtering></filtering>
95<!--描述存放资源的⽬录,该路径相对POM路径-->
96<directory></directory>
97<!--包含的模式列表,例如**/*.xml.-->
98<includes></includes>
99<!--排除的模式列表,例如**/*.xml-->
100<excludes></excludes>
101</resource>
102</resources>
103
104<!--这个元素描述了单元测试相关的所有资源路径,例如和单元测试相关的属性⽂件。-->
105<testResources>
106<!--这个元素描述了测试相关的所有资源路径,参见build/resources/resource元素的说明-->
107<testResource>
108<targetPath></targetPath>
109<filtering></filtering>
110<directory></directory>
111<includes></includes>
112<excludes></excludes>
113</testResource>
114</testResources>
115
116<!--构建产⽣的所有⽂件存放的⽬录-->
117<directory></directory>
118<!--产⽣的构件的⽂件名,默认值是${artifactId}-${version}。-->
119<finalName></finalName>
120<!--当filtering开关打开时,使⽤到的过滤器属性⽂件列表-->
121<filters></filters>
122
123<!--⼦项⽬可以引⽤的默认插件信息。该插件配置项直到被引⽤时才会被解析或绑定到⽣命周期。给定插件的任何本地配置都会覆盖这⾥的配置--> 124<pluginManagement>
125<!--使⽤的插件列表。-->
126<plugins>
127<!--plugin元素包含描述插件所需要的信息。-->
128<plugin>
129<!--插件在仓库⾥的group ID-->
130<groupId/>
131<!--插件在仓库⾥的artifact ID-->
132<artifactId/>
133<!--被使⽤的插件的版本(或版本范围)-->
134<version/>
135<!--是否从该插件下载Maven扩展(例如打包和类型处理器),由于性能原因,只有在真需要下载时,该元素才被设置成enabled。-->
136<extensions/>
137<!--在构建⽣命周期中执⾏⼀组⽬标的配置。每个⽬标可能有不同的配置。--><executions>
138<!--execution元素包含了插件执⾏需要的信息-->
139<execution>
140<!--执⾏⽬标的标识符,⽤于标识构建过程中的⽬标,或者匹配继承过程中需要合并的执⾏⽬标-->
141<id/>
142<!--绑定了⽬标的构建⽣命周期阶段,如果省略,⽬标会被绑定到源数据⾥配置的默认阶段-->
143<phase/>
144<!--配置的执⾏⽬标-->
145<goals/>
146<!--配置是否被传播到⼦POM-->
147<inherited/>
148<!--作为DOM对象的配置-->
149<configuration/>
150</execution>
151</executions>
152
153<!--项⽬引⼊插件所需要的额外依赖-->
154<dependencies>
155<!--参见dependencies/dependency元素-->
156<dependency>
157</dependency>
158</dependencies>
159
160<!--任何配置是否被传播到⼦项⽬-->
161<inherited/>
162<!--作为DOM对象的配置-->
163<configuration/>
164</plugin>
165</plugins>
166</pluginManagement>
167
168<!--使⽤的插件列表-->
169<plugins>
170<!--参见build/pluginManagement/plugins/plugin元素-->
171<plugin>
172<groupId/><artifactId/><version/><extensions/>
173<executions>
174<execution>
175<id/><phase/><goals/><inherited/><configuration/>
176</execution>
177</executions>
178<dependencies>
179<!--参见dependencies/dependency元素-->
180<dependency>
181</dependency>
182</dependencies>
183<goals/><inherited/><configuration/>
184</plugin>
185</plugins>
186</build>
187
188<licenses>证书列表</licenses>
189
190<!--描述项⽬所属组织的各种属性。Maven产⽣的⽂档⽤-->
191<organization>
192<!--组织的全名-->
193<name></name>
194<!--组织主页的URL-->
195<url></url>
196</organization>
197
198<!--项⽬开发者列表-->
199<developers>
200<!--某个项⽬开发者的信息-->
201<developer>
202<!--SCM⾥项⽬开发者的唯⼀标识符-->
203<id></id>
204<!--项⽬开发者的全名-->
205<name></name>
206<!--项⽬开发者的email-->
207<email></email>
208<!--项⽬开发者的主页的URL-->
209<url></url>
210
211<!--项⽬开发者在项⽬中扮演的⾓⾊,⾓⾊元素描述了各种⾓⾊-->
212<roles>
213<role></role>
214<role></role>
215</roles>
216
217<!--项⽬开发者所属组织-->
218<organization></organization>
219<!--项⽬开发者所属组织的URL-->
220<organizationUrl></organizationUrl>
221<!--项⽬开发者属性,如即时消息如何处理等-->
222<properties>
223<dept></dept>
224</properties>
225
226<!--项⽬开发者所在时区, -11到12范围内的整数。-->
227<timezone></timezone>
228</developer>
229</developers>
230
231<!--项⽬的其他贡献者列表-->
232<contributors>
233<!--项⽬的其他贡献者。参见developers/developer元素--> 234<contributor>
235</contributor>
236</contributors>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论