maven-pom.xml 说明

本贴最后更新于 2186 天前,其中的信息可能已经时移世改
<project xmlns="http://maven.apache.org/POM/4.0.0"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd ">

<!-- 父项目的坐标。如果项目中没有规定某个元素的值,那么父项目中的对应值即为项目的默认值。 坐标包括group ID,artifact ID和 version。 -->

	<parent>

		<!-- 被继承的父项目的构件标识符 -->

			<artifactId />

		<!-- 被继承的父项目的全球唯一标识符 -->

			<groupId />

		<!-- 被继承的父项目的版本 -->

			<version />

		<!-- 父项目的pom.xml文件的相对路径。相对路径允许你选择一个不同的路径。默认值是../pom.xml。Maven首先在构建当前项目的地方寻找父项目的pom,其次在文件系统的这个位置(relativePath位置),然后在本地仓库,最后在远程仓库寻找父项目的pom。 -->

		<relativePath />

	</parent>

<!-- 声明项目描述符遵循哪一个POM模型版本。模型本身的版本很少改变,虽然如此,但它仍然是必不可少的,这是为了当Maven引入了新的特性或者其他模型变更的时候,确保稳定性。 -->

	<modelVersion> 4.0.0 </modelVersion>

<!-- 项目的全球唯一标识符,通常使用全限定的包名区分该项目和其他项目。并且构建时生成的路径也是由此生成, 如com.mycompany.app生成的相对路径为:/com/mycompany/app -->

	<groupId> asia.banseon </groupId>

<!-- 构件的标识符,它和group ID一起唯一标识一个构件。换句话说,你不能有两个不同的项目拥有同样的artifact ID和groupID;在某个特定的group ID下,artifact ID也必须是唯一的。构件是项目产生的或使用的一个东西,Maven为项目产生的构件包括:JARs,源码,二进制发布和WARs等。 -->

	<artifactId> banseon-maven2 </artifactId>

<!-- 项目产生的构件类型,例如jar、war、ear、pom。插件可以创建他们自己的构件类型,所以前面列的不是全部构件类型 -->

	<packaging> jar </packaging>

<!-- 项目当前版本,格式为:主版本.次版本.增量版本-限定版本号 -->

	<version> 1.0-SNAPSHOT </version>

<!-- 项目的名称, Maven产生的文档用 -->

	<name> banseon-maven </name>

<!-- 项目主页的URL, Maven产生的文档用 -->

	<url> http://www.baidu.com/banseon </url>

<!-- 项目的详细描述, Maven 产生的文档用。 当这个元素能够用HTML格式描述时(例如,CDATA中的文本会被解析器忽略,就可以包含HTML标签), 不鼓励使用纯文本描述。如果你需要修改产生的web站点的索引页面,你应该修改你自己的索引页文件,而不是调整这里的文档。 -->

	<description> A maven project to study maven. </description>

<!-- 描述了这个项目构建环境中的前提条件。 -->

	<prerequisites>

	<!-- 构建该项目或使用该插件所需要的Maven的最低版本 -->

		<maven />

	</prerequisites>

<!-- 项目的问题管理系统(Bugzilla, Jira, Scarab,或任何你喜欢的问题管理系统)的名称和URL,本例为 jira -->

	<issueManagement>

	<!-- 问题管理系统(例如jira)的名字, -->

		<system> jira </system>

	<!-- 该项目使用的问题管理系统的URL -->

		<url> http://jira.baidu.com/banseon </url>

	</issueManagement>

<!-- 项目持续集成信息 -->

	<ciManagement>

	<!-- 持续集成系统的名字,例如continuum -->

		<system />

	<!-- 该项目使用的持续集成系统的URL(如果持续集成系统有web接口的话)。 -->

		<url />

	<!-- 构建完成时,需要通知的开发者/用户的配置项。包括被通知者信息和通知条件(错误,失败,成功,警告) -->

		<notifiers>

		<!-- 配置一种方式,当构建中断时,以该方式通知用户/开发者 -->

			<notifier>

			<!-- 传送通知的途径 -->

				<type />

			<!-- 发生错误时是否通知 -->

				<sendOnError />

			<!-- 构建失败时是否通知 -->

				<sendOnFailure />

			<!-- 构建成功时是否通知 -->

				<sendOnSuccess />

			<!-- 发生警告时是否通知 -->

				<sendOnWarning />

			<!-- 不赞成使用。通知发送到哪里 -->

				<address />

			<!-- 扩展配置项 -->

				<configuration />

			</notifier>

		</notifiers>

	</ciManagement>

<!-- 项目创建年份,4位数字。当产生版权信息时需要使用这个值。 -->

	<inceptionYear />

<!-- 项目相关邮件列表信息 -->

	<mailingLists>

	<!-- 该元素描述了项目相关的所有邮件列表。自动产生的网站引用这些信息。 -->

	<mailingList>

		<!-- 邮件的名称 -->
		
			<name> Demo </name>

		<!-- 发送邮件的地址或链接,如果是邮件地址,创建文档时,mailto: 链接会被自动创建 -->

			<post> admin@zaccn.com </post>

		<!-- 订阅邮件的地址或链接,如果是邮件地址,创建文档时,mailto: 链接会被自动创建 -->

			<subscribe> admin@zaccn.com </subscribe>

		<!-- 取消订阅邮件的地址或链接,如果是邮件地址,创建文档时,mailto: 链接会被自动创建 -->

			<unsubscribe> admin@zaccn.com </unsubscribe>

		<!-- 你可以浏览邮件信息的URL -->

			<archive> http://www.zaccn.com </archive>

	</mailingList>

</mailingLists>

<!-- 项目开发者列表 -->

	<developers>

	<!-- 某个项目开发者的信息 -->

		<developer>

		<!-- SCM里项目开发者的唯一标识符 -->

			<id> HELLO WORLD </id>

		<!-- 项目开发者的全名 -->

			<name> ZacTang </name>

		<!-- 项目开发者的email -->

			<email> admin@zaccn.com </email>

		<!-- 项目开发者的主页的URL -->

			<url />

		<!-- 项目开发者在项目中扮演的角色,角色元素描述了各种角色 -->

			<roles>

			<role> Project Manager </role>

			<role> Architect </role>

			</roles>

		<!-- 项目开发者所属组织 -->

			<organization> demo </organization>

		<!-- 项目开发者所属组织的URL -->

			<organizationUrl> http://www.zaccn.com </organizationUrl>

		<!-- 项目开发者属性,如即时消息如何处理等 -->

			<properties>

			<dept> No </dept>

			</properties>

		<!-- 项目开发者所在时区, -11到12范围内的整数。 -->

			<timezone> -5 </timezone>

		</developer>

	</developers>

<!-- 项目的其他贡献者列表 -->

	<contributors>

		<!-- 项目的其他贡献者。参见developers/developer元素 -->

		<contributor>

			<name /><email /><url /><organization /><organizationUrl /><roles /><timezone /><properties />

		</contributor>

	</contributors>

<!-- 该元素描述了项目所有License列表。 应该只列出该项目的license列表,不要列出依赖项目的 license列表。如果列出多个license,用户可以选择它们中的一个而不是接受所有license。 -->

	<licenses>

	<!-- 描述了项目的license,用于生成项目的web站点的license页面,其他一些报表和validation也会用到该元素。 -->

		<license>

		<!-- license用于法律上的名称 -->

			<name> Apache 2 </name>

		<!-- 官方的license正文页面的URL -->

		<url> http://http://www.zaccn.com/LICENSE-2.0.txt </url>

		<!-- 项目分发的主要方式:

		repo,可以从Maven库下载

		manual, 用户必须手动下载和安装依赖 -->

			<distribution> repo </distribution>

		<!-- 关于license的补充信息 -->

			<comments> A business-friendly OSS license </comments>

		</license>

	</licenses>

<!-- SCM(Source Control Management)标签允许你配置你的代码库,供Maven web站点和其它插件使用。 -->

	<scm>

	<!-- SCM的URL,该URL描述了版本库和如何连接到版本库。欲知详情,请看SCMs提供的URL格式和列表。该连接只读。 -->

		<connection>

		scm:svn:http://svn.zaccn.com

		</connection>

	<!-- 给开发者使用的,类似connection元素。即该连接不仅仅只读 -->

		<developerConnection>

		scm:svn:http://svn.zaccn.com

		</developerConnection>

	<!-- 当前代码的标签,在开发阶段默认为HEAD -->

		<tag />

	<!-- 指向项目的可浏览SCM库(例如ViewVC或者Fisheye)的URL。 -->

		<url> http://svn.zaccn.com</url>

	</scm>

<!-- 描述项目所属组织的各种属性。Maven产生的文档用 -->

	<organization>

	<!-- 组织的全名 -->

		<name> demo </name>

	<!-- 组织主页的URL -->

		<url> http://www.zaccn.com </url>

	</organization>

<!-- 构建项目需要的信息 -->

<build>

<!-- 该元素设置了项目源码目录,当构建项目的时候,构建系统会编译目录里的源码。该路径是相对于pom.xml的相对路径。 -->

	<sourceDirectory />

<!-- 该元素设置了项目脚本源码目录,该目录和源码目录不同:绝大多数情况下,该目录下的内容 会被拷贝到输出目录(因为脚本是被解释的,而不是被编译的)。 -->

	<scriptSourceDirectory />

<!-- 该元素设置了项目单元测试使用的源码目录,当测试项目的时候,构建系统会编译目录里的源码。该路径是相对于pom.xml的相对路径。 -->

	<testSourceDirectory />

<!-- 被编译过的应用程序class文件存放的目录。 -->

	<outputDirectory />

<!-- 被编译过的测试class文件存放的目录。 -->

	<testOutputDirectory />

<!-- 使用来自该项目的一系列构建扩展 -->

	<extensions>

	<!-- 描述使用到的构建扩展。 -->

		<extension>

		<!-- 构建扩展的groupId -->

			<groupId />

		<!-- 构建扩展的artifactId -->

			<artifactId />

		<!-- 构建扩展的版本 -->

			<version />

		</extension>

	</extensions>

<!-- 当项目没有规定目标(Maven2 叫做阶段)时的默认值 -->

	<defaultGoal />

<!-- 这个元素描述了项目相关的所有资源路径列表,例如和项目相关的属性文件,这些资源被包含在最终的打包文件里。 -->

<resources>

<!-- 这个元素描述了项目相关或测试相关的所有资源路径 -->

	<resource>

	<!-- 描述了资源的目标路径。该路径相对target/classes目录(例如${project.build.outputDirectory})。举个例子,如果你想资源在特定的包里(org.apache.maven.messages),你就必须该元素设置为org/apache/maven/messages。然而,如果你只是想把资源放到源码目录结构里,就不需要该配置。 -->

		<targetPath />

	<!-- 是否使用参数值代替参数名。参数值取自properties元素或者文件里配置的属性,文件在filters元素里列出。 -->

		<filtering />

	<!-- 描述存放资源的目录,该路径相对POM路径 -->

		<directory />

	<!-- 包含的模式列表,例如**/*.xml. -->

		<includes />

	<!-- 排除的模式列表,例如**/*.xml -->

		<excludes />

	</resource>

</resources>

<!-- 这个元素描述了单元测试相关的所有资源路径,例如和单元测试相关的属性文件。 -->

	<testResources>

		<!-- 这个元素描述了测试相关的所有资源路径,参见build/resources/resource元素的说明 -->

			<testResource>

			<targetPath /><filtering /><directory /><includes /><excludes />

			</testResource>

	</testResources>

<!-- 构建产生的所有文件存放的目录 -->

	<directory />

<!-- 产生的构件的文件名,默认值是${artifactId}-${version}。 -->

	<finalName />

<!-- 当filtering开关打开时,使用到的过滤器属性文件列表 -->

	<filters />

<!-- 子项目可以引用的默认插件信息。该插件配置项直到被引用时才会被解析或绑定到生命周期。给定插件的任何本地配置都会覆盖这里的配置 -->

	<pluginManagement>

	<!-- 使用的插件列表 。 -->

		<plugins>

		<!-- plugin元素包含描述插件所需要的信息。 -->

			<plugin>

			<!-- 插件在仓库里的group ID -->

			<groupId />

			<!-- 插件在仓库里的artifact ID -->

			<artifactId />

			<!-- 被使用的插件的版本(或版本范围) -->

			<version />

			<!-- 是否从该插件下载Maven扩展(例如打包和类型处理器),由于性能原因,只有在真需要下载时,该元素才被设置成enabled。 -->

			<extensions />

			<!-- 在构建生命周期中执行一组目标的配置。每个目标可能有不同的配置。 -->

			<executions>

				<!-- execution元素包含了插件执行需要的信息 -->

					<execution>

					<!-- 执行目标的标识符,用于标识构建过程中的目标,或者匹配继承过程中需要合并的执行目标 -->

					<id />

					<!-- 绑定了目标的构建生命周期阶段,如果省略,目标会被绑定到源数据里配置的默认阶段 -->

					<phase />

					<!-- 配置的执行目标 -->

					<goals />

					<!-- 配置是否被传播到子POM -->

					<inherited />

					<!-- 作为DOM对象的配置 -->

					<configuration />

					</execution>

				</executions>

			<!-- 项目引入插件所需要的额外依赖 -->

				<dependencies>

				<!-- 参见dependencies/dependency元素 -->

				<dependency>



				</dependency>

				</dependencies>

			<!-- 任何配置是否被传播到子项目 -->

				<inherited />

			<!-- 作为DOM对象的配置 -->

				<configuration />

			</plugin>

		</plugins>

	</pluginManagement>

<!-- 使用的插件列表 -->

	<plugins>

	<!-- 参见build/pluginManagement/plugins/plugin元素 -->

		<plugin>

		<groupId /><artifactId /><version /><extensions />

		<executions>

		<execution>

		<id /><phase /><goals /><inherited /><configuration />

		</execution>

		</executions>

		<dependencies>

		<!-- 参见dependencies/dependency元素 -->

		<dependency>



		</dependency>

		</dependencies>

		<goals /><inherited /><configuration />

		</plugin>

	</plugins>

</build>

<!-- 在列的项目构建profile,如果被激活,会修改构建处理 -->

<profiles>

<!-- 根据环境参数或命令行参数激活某个构建处理 -->

	<profile>

	<!-- 构建配置的唯一标识符。即用于命令行激活,也用于在继承时合并具有相同标识符的profile。 -->

	<id />

	<!-- 自动触发profile的条件逻辑。Activation是profile的开启钥匙。profile的力量来自于它

	能够在某些特定的环境中自动使用某些特定的值;这些环境通过activation元素指定。activation元素并不是激活profile的唯一方式。 -->

	<activation>

	<!-- profile默认是否激活的标志 -->

	<activeByDefault />

	<!-- 当匹配的jdk被检测到,profile被激活。例如,1.4激活JDK1.4,1.4.0_2,而!1.4激活所有版本不是以1.4开头的JDK。 -->

	<jdk />

	<!-- 当匹配的操作系统属性被检测到,profile被激活。os元素可以定义一些操作系统相关的属性。 -->

	<os>

	<!-- 激活profile的操作系统的名字 -->

	<name> Windows XP </name>

	<!-- 激活profile的操作系统所属家族(如 'windows') -->

	<family> Windows </family>

	<!-- 激活profile的操作系统体系结构 -->

	<arch> x86 </arch>

	<!-- 激活profile的操作系统版本 -->

	<version> 5.1.2600 </version>

	</os>

	<!-- 如果Maven检测到某一个属性(其值可以在POM中通过${名称}引用),其拥有对应的名称和值,Profile就会被激活。如果值

	字段是空的,那么存在属性名称字段就会激活profile,否则按区分大小写方式匹配属性值字段 -->

	<property>

	<!-- 激活profile的属性的名称 -->

	<name> mavenVersion </name>

	<!-- 激活profile的属性的值 -->

	<value> 2.0.3 </value>

	</property>

	<!-- 提供一个文件名,通过检测该文件的存在或不存在来激活profile。missing检查文件是否存在,如果不存在则激活

	profile。另一方面,exists则会检查文件是否存在,如果存在则激活profile。 -->

	<file>

	<!-- 如果指定的文件存在,则激活profile。 -->

	<exists> /usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/ </exists>

	<!-- 如果指定的文件不存在,则激活profile。 -->

	<missing> /usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/ </missing>

	</file>

	</activation>

	<!-- 构建项目所需要的信息。参见build元素 -->

	<build>

	<defaultGoal />

	<resources>

	<resource>

	<targetPath /><filtering /><directory /><includes /><excludes />

	</resource>

	</resources>

	<testResources>

	<testResource>

	<targetPath /><filtering /><directory /><includes /><excludes />

	</testResource>

	</testResources>

	<directory /><finalName /><filters />

	<pluginManagement>

	<plugins>

	<!-- 参见build/pluginManagement/plugins/plugin元素 -->

	<plugin>

	<groupId /><artifactId /><version /><extensions />

	<executions>

	<execution>

	<id /><phase /><goals /><inherited /><configuration />

	</execution>

	</executions>

	<dependencies>

	<!-- 参见dependencies/dependency元素 -->

	<dependency>



	</dependency>

	</dependencies>

	<goals /><inherited /><configuration />

	</plugin>

	</plugins>

	</pluginManagement>

	<plugins>

	<!-- 参见build/pluginManagement/plugins/plugin元素 -->

	<plugin>

	<groupId /><artifactId /><version /><extensions />

	<executions>

	<execution>

	<id /><phase /><goals /><inherited /><configuration />

	</execution>

	</executions>

	<dependencies>

	<!-- 参见dependencies/dependency元素 -->

	<dependency>



	</dependency>

	</dependencies>

	<goals /><inherited /><configuration />

	</plugin>

	</plugins>

	</build>

	<!-- 模块(有时称作子项目) 被构建成项目的一部分。列出的每个模块元素是指向该模块的目录的相对路径 -->

	<modules />

	<!-- 发现依赖和扩展的远程仓库列表。 -->

	<repositories>

	<!-- 参见repositories/repository元素 -->

	<repository>

	<releases>

	<enabled /><updatePolicy /><checksumPolicy />

	</releases>

	<snapshots>

	<enabled /><updatePolicy /><checksumPolicy />

	</snapshots>

	<id /><name /><url /><layout />

	</repository>

	</repositories>

	<!-- 发现插件的远程仓库列表,这些插件用于构建和报表 -->

	<pluginRepositories>

	<!-- 包含需要连接到远程插件仓库的信息.参见repositories/repository元素 -->

	<pluginRepository>

	<releases>

	<enabled /><updatePolicy /><checksumPolicy />

	</releases>

	<snapshots>

	<enabled /><updatePolicy /><checksumPolicy />

	</snapshots>

	<id /><name /><url /><layout />

	</pluginRepository>

	</pluginRepositories>

	<!-- 该元素描述了项目相关的所有依赖。 这些依赖组成了项目构建过程中的一个个环节。它们自动从项目定义的仓库中下载。要获取更多信息,请看项目依赖机制。 -->

	<dependencies>

	<!-- 参见dependencies/dependency元素 -->

	<dependency>



	</dependency>

	</dependencies>

	<!-- 不赞成使用. 现在Maven忽略该元素. -->

	<reports />

	<!-- 该元素包括使用报表插件产生报表的规范。当用户执行“mvn site”,这些报表就会运行。 在页面导航栏能看到所有报表的链接。参见reporting元素 -->

	<reporting>



	</reporting>

	<!-- 参见dependencyManagement元素 -->

	<dependencyManagement>

	<dependencies>

	<!-- 参见dependencies/dependency元素 -->

	<dependency>



	</dependency>

	</dependencies>

	</dependencyManagement>

	<!-- 参见distributionManagement元素 -->

	<distributionManagement>



	</distributionManagement>

	<!-- 参见properties元素 -->

	<properties />

		</profile>

		</profiles>

	<!-- 模块(有时称作子项目) 被构建成项目的一部分。列出的每个模块元素是指向该模块的目录的相对路径 -->

		<modules />

	<!-- 发现依赖和扩展的远程仓库列表。 -->

		<repositories>

		<!-- 包含需要连接到远程仓库的信息 -->

			<repository>

		<!-- 如何处理远程仓库里发布版本的下载 -->

			<releases>

			<!-- true或者false表示该仓库是否为下载某种类型构件(发布版,快照版)开启。 -->

			<enabled />

			<!-- 该元素指定更新发生的频率。Maven会比较本地POM和远程POM的时间戳。这里的选项是:always(一直),daily(默认,每日),interval:X(这里X是以分钟为单位的时间间隔),或者never(从不)。 -->

			<updatePolicy />

			<!-- 当Maven验证构件校验文件失败时该怎么做:ignore(忽略),fail(失败),或者warn(警告)。 -->

			<checksumPolicy />

			</releases>

		<!-- 如何处理远程仓库里快照版本的下载。有了releases和snapshots这两组配置,POM就可以在每个单独的仓库中,为每种类型的构件采取不同的策略。例如,可能有人会决定只为开发目的开启对快照版本下载的支持。参见repositories/repository/releases元素 -->

			<snapshots>

			<enabled /><updatePolicy /><checksumPolicy />

			</snapshots>

		<!-- 远程仓库唯一标识符。可以用来匹配在settings.xml文件里配置的远程仓库 -->

			<id> zaccn-repository-proxy </id>

		<!-- 远程仓库名称 -->

			<name> zaccn-repository-proxy </name>

		<!-- 远程仓库URL,按protocol://hostname/path形式 -->

			<url> http://192.168.1.169:9999/repository/ </url>

		<!-- 用于定位和排序构件的仓库布局类型-可以是default(默认)或者legacy(遗留)。Maven 2为其仓库提供了一个默认的布局;然而,Maven 1.x有一种不同的布局。我们可以使用该元素指定布局是default(默认)还是legacy(遗留)。 -->

			<layout> default </layout>

		</repository>

		</repositories>

	<!-- 发现插件的远程仓库列表,这些插件用于构建和报表 -->

	<pluginRepositories>

	<!-- 包含需要连接到远程插件仓库的信息.参见repositories/repository元素 -->

	<pluginRepository>



	</pluginRepository>

	</pluginRepositories>



	<!-- 该元素描述了项目相关的所有依赖。 这些依赖组成了项目构建过程中的一个个环节。它们自动从项目定义的仓库中下载。要获取更多信息,请看项目依赖机制。 -->

	<dependencies>

	<dependency>

	<!-- 依赖的group ID -->

	<groupId> org.apache.maven </groupId>

	<!-- 依赖的artifact ID -->

	<artifactId> maven-artifact </artifactId>

	<!-- 依赖的版本号。 在Maven 2里, 也可以配置成版本号的范围。 -->

	<version> 3.8.1 </version>

	<!-- 依赖类型,默认类型是jar。它通常表示依赖的文件的扩展名,但也有例外。一个类型可以被映射成另外一个扩展名或分类器。类型经常和使用的打包方式对应,尽管这也有例外。一些类型的例子:jar,war,ejb-client和test-jar。如果设置extensions为 true,就可以在plugin里定义新的类型。所以前面的类型的例子不完整。 -->

	<type> jar </type>

	<!-- 依赖的分类器。分类器可以区分属于同一个POM,但不同构建方式的构件。分类器名被附加到文件名的版本号后面。例如,如果你想要构建两个单独的构件成JAR,一个使用Java 1.4编译器,另一个使用Java 6编译器,你就可以使用分类器来生成两个单独的JAR构件。 -->

	<classifier></classifier>

	<!-- 依赖范围。在项目发布过程中,帮助决定哪些构件被包括进来。欲知详情请参考依赖机制。

	- compile :默认范围,用于编译

	- provided:类似于编译,但支持你期待jdk或者容器提供,类似于classpath

	- runtime: 在执行时需要使用

	- test: 用于test任务时使用

	- system: 需要外在提供相应的元素。通过systemPath来取得

	- systemPath: 仅用于范围为system。提供相应的路径

	- optional: 当项目自身被依赖时,标注依赖是否传递。用于连续依赖时使用 -->

	<scope> test </scope>

	<!-- 仅供system范围使用。注意,不鼓励使用这个元素,并且在新的版本中该元素可能被覆盖掉。该元素为依赖规定了文件系统上的路径。需要绝对路径而不是相对路径。推荐使用属性匹配绝对路径,例如${java.home}。 -->

	<systemPath></systemPath>

	<!-- 当计算传递依赖时, 从依赖构件列表里,列出被排除的依赖构件集。即告诉maven你只依赖指定的项目,不依赖项目的依赖。此元素主要用于解决版本冲突问题 -->

	<exclusions>

	<exclusion>

	<artifactId> spring-core </artifactId>

	<groupId> org.springframework </groupId>

	</exclusion>

	</exclusions>

	<!-- 可选依赖,如果你在项目B中把C依赖声明为可选,你就需要在依赖于B的项目(例如项目A)中显式的引用对C的依赖。可选依赖阻断依赖的传递性。 -->

	<optional> true </optional>

	</dependency>

	</dependencies>

	<!-- 不赞成使用. 现在Maven忽略该元素. -->

	<reports></reports>

	<!-- 该元素描述使用报表插件产生报表的规范。当用户执行“mvn site”,这些报表就会运行。 在页面导航栏能看到所有报表的链接。 -->

	<reporting>

	<!-- true,则,网站不包括默认的报表。这包括“项目信息”菜单中的报表。 -->

	<excludeDefaults />

	<!-- 所有产生的报表存放到哪里。默认值是${project.build.directory}/site。 -->

	<outputDirectory />

	<!-- 使用的报表插件和他们的配置。 -->

	<plugins>

	<!-- plugin元素包含描述报表插件需要的信息 -->

	<plugin>

	<!-- 报表插件在仓库里的group ID -->

	<groupId />

	<!-- 报表插件在仓库里的artifact ID -->

	<artifactId />

	<!-- 被使用的报表插件的版本(或版本范围) -->

	<version />

	<!-- 任何配置是否被传播到子项目 -->

	<inherited />

	<!-- 报表插件的配置 -->

	<configuration />

	<!-- 一组报表的多重规范,每个规范可能有不同的配置。一个规范(报表集)对应一个执行目标 。例如,有1,2,3,4,5,6,7,8,9个报表。1,2,5构成A报表集,对应一个执行目标。2,5,8构成B报表集,对应另一个执行目标 -->

	<reportSets>

	<!-- 表示报表的一个集合,以及产生该集合的配置 -->

	<reportSet>

	<!-- 报表集合的唯一标识符,POM继承时用到 -->

	<id />

	<!-- 产生报表集合时,被使用的报表的配置 -->

	<configuration />

	<!-- 配置是否被继承到子POMs -->

	<inherited />

	<!-- 这个集合里使用到哪些报表 -->

	<reports />

	</reportSet>

	</reportSets>

	</plugin>

	</plugins>

	</reporting>

	<!-- 继承自该项目的所有子项目的默认依赖信息。这部分的依赖信息不会被立即解析,而是当子项目声明一个依赖(必须描述group ID和artifact ID信息),如果group ID和artifact ID以外的一些信息没有描述,则通过group ID和artifact ID匹配到这里的依赖,并使用这里的依赖信息。 -->

	<dependencyManagement>

	<dependencies>

	<!-- 参见dependencies/dependency元素 -->

	<dependency>



	</dependency>

	</dependencies>

	</dependencyManagement>

	<!-- 项目分发信息,在执行mvn deploy后表示要发布的位置。有了这些信息就可以把网站部署到远程服务器或者把构件部署到远程仓库。 -->

	<distributionManagement>

	<!-- 部署项目产生的构件到远程仓库需要的信息 -->

	<repository>

	<!-- 是分配给快照一个唯一的版本号(由时间戳和构建流水号)?还是每次都使用相同的版本号?参见repositories/repository元素 -->

	<uniqueVersion />

	<id> banseon-maven2 </id>

	<name> banseon maven2 </name>

	<url> file://${basedir}/target/deploy </url>

	<layout />

	</repository>

	<!-- 构件的快照部署到哪里?如果没有配置该元素,默认部署到repository元素配置的仓库,参见distributionManagement/repository元素 -->

	<snapshotRepository>

	<uniqueVersion />

	<id> zaccn-maven2 </id>

	<name> zaccn-maven2 Snapshot Repository </name>

	<url> scp://svn.zaccn.com </url>

	<layout />

	</snapshotRepository>

	<!-- 部署项目的网站需要的信息 -->

	<site>

	<!-- 部署位置的唯一标识符,用来匹配站点和settings.xml文件里的配置 -->

	<id> zaccn-site </id>

	<!-- 部署位置的名称 -->

	<name> business api website </name>

	<!-- 部署位置的URL,按protocol://hostname/path形式 -->

	<url>

	scp://svn.baidu.com/zaccn:/var/www/localhost/zaccn-web

	</url>

	</site>

	<!-- 项目下载页面的URL。如果没有该元素,用户应该参考主页。使用该元素的原因是:帮助定位那些不在仓库里的构件(由于license限制)。 -->

	<downloadUrl />

	<!-- 如果构件有了新的group ID和artifact ID(构件移到了新的位置),这里列出构件的重定位信息。 -->

	<relocation>

	<!-- 构件新的group ID -->

	<groupId />

	<!-- 构件新的artifact ID -->

	<artifactId />

	<!-- 构件新的版本号 -->

	<version />

	<!-- 显示给用户的,关于移动的额外信息,例如原因。 -->

	<message />

	</relocation>

	<!-- 给出该构件在远程仓库的状态。不得在本地项目中设置该元素,因为这是工具自动更新的。有效的值有:none(默认),converted(仓库管理员从Maven 1 POM转换过来),partner(直接从伙伴Maven 2仓库同步过来),deployed(从Maven 2实例部署),verified(被核实时正确的和最终的)。 -->

	<status />

	</distributionManagement>

	<!-- 以值替代名称,Properties可以在整个POM中使用,也可以作为触发条件(见settings.xml配置文件里activation元素的说明)。格式是<name>value</name>。 -->

	<properties />

</project>  
  • Maven

    Maven 是基于项目对象模型(POM)、通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。

    186 引用 • 318 回帖 • 336 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • 支付宝

    支付宝是全球领先的独立第三方支付平台,致力于为广大用户提供安全快速的电子支付/网上支付/安全支付/手机支付体验,及转账收款/水电煤缴费/信用卡还款/AA 收款等生活服务应用。

    29 引用 • 347 回帖 • 1 关注
  • ReactiveX

    ReactiveX 是一个专注于异步编程与控制可观察数据(或者事件)流的 API。它组合了观察者模式,迭代器模式和函数式编程的优秀思想。

    1 引用 • 2 回帖 • 141 关注
  • 微服务

    微服务架构是一种架构模式,它提倡将单一应用划分成一组小的服务。服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在独立的进程中。服务于服务之间才用轻量级的通信机制互相沟通。每个服务都围绕着具体业务构建,能够被独立的部署。

    96 引用 • 155 回帖
  • Mobi.css

    Mobi.css is a lightweight, flexible CSS framework that focus on mobile.

    1 引用 • 6 回帖 • 708 关注
  • SpaceVim

    SpaceVim 是一个社区驱动的模块化 vim/neovim 配置集合,以模块的方式组织管理插件以
    及相关配置,为不同的语言开发量身定制了相关的开发模块,该模块提供代码自动补全,
    语法检查、格式化、调试、REPL 等特性。用户仅需载入相关语言的模块即可得到一个开箱
    即用的 Vim-IDE。

    3 引用 • 31 回帖 • 82 关注
  • SSL

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS 与 SSL 在传输层对网络连接进行加密。

    69 引用 • 190 回帖 • 483 关注
  • Tomcat

    Tomcat 最早是由 Sun Microsystems 开发的一个 Servlet 容器,在 1999 年被捐献给 ASF(Apache Software Foundation),隶属于 Jakarta 项目,现在已经独立为一个顶级项目。Tomcat 主要实现了 JavaEE 中的 Servlet、JSP 规范,同时也提供 HTTP 服务,是市场上非常流行的 Java Web 容器。

    162 引用 • 529 回帖
  • 微软

    微软是一家美国跨国科技公司,也是世界 PC 软件开发的先导,由比尔·盖茨与保罗·艾伦创办于 1975 年,公司总部设立在华盛顿州的雷德蒙德(Redmond,邻近西雅图)。以研发、制造、授权和提供广泛的电脑软件服务业务为主。

    8 引用 • 44 回帖
  • NGINX

    NGINX 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 NGINX 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。

    311 引用 • 546 回帖 • 1 关注
  • 游戏

    沉迷游戏伤身,强撸灰飞烟灭。

    171 引用 • 813 回帖
  • Sandbox

    如果帖子标签含有 Sandbox ,则该帖子会被视为“测试帖”,主要用于测试社区功能,排查 bug 等,该标签下内容不定期进行清理。

    379 引用 • 1221 回帖 • 590 关注
  • WebClipper

    Web Clipper 是一款浏览器剪藏扩展,它可以帮助你把网页内容剪藏到本地。

    3 引用 • 9 回帖 • 2 关注
  • 负能量

    上帝为你关上了一扇门,然后就去睡觉了....努力不一定能成功,但不努力一定很轻松 (° ー °〃)

    87 引用 • 1206 回帖 • 449 关注
  • 架构

    我们平时所说的“架构”主要是指软件架构,这是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。另外还有“业务架构”、“网络架构”、“硬件架构”等细分领域。

    140 引用 • 441 回帖
  • PostgreSQL

    PostgreSQL 是一款功能强大的企业级数据库系统,在 BSD 开源许可证下发布。

    22 引用 • 22 回帖 • 1 关注
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    942 引用 • 1458 回帖 • 118 关注
  • Kotlin

    Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,由 JetBrains 设计开发并开源。Kotlin 可以编译成 Java 字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。在 Google I/O 2017 中,Google 宣布 Kotlin 成为 Android 官方开发语言。

    19 引用 • 33 回帖 • 44 关注
  • RESTful

    一种软件架构设计风格而不是标准,提供了一组设计原则和约束条件,主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

    30 引用 • 114 回帖
  • TextBundle

    TextBundle 文件格式旨在应用程序之间交换 Markdown 或 Fountain 之类的纯文本文件时,提供更无缝的用户体验。

    1 引用 • 2 回帖 • 45 关注
  • gRpc
    10 引用 • 8 回帖 • 54 关注
  • 国际化

    i18n(其来源是英文单词 internationalization 的首末字符 i 和 n,18 为中间的字符数)是“国际化”的简称。对程序来说,国际化是指在不修改代码的情况下,能根据不同语言及地区显示相应的界面。

    7 引用 • 26 回帖
  • 旅游

    希望你我能在旅途中找到人生的下一站。

    86 引用 • 896 回帖
  • 百度

    百度(Nasdaq:BIDU)是全球最大的中文搜索引擎、最大的中文网站。2000 年 1 月由李彦宏创立于北京中关村,致力于向人们提供“简单,可依赖”的信息获取方式。“百度”二字源于中国宋朝词人辛弃疾的《青玉案·元夕》词句“众里寻他千百度”,象征着百度对中文信息检索技术的执著追求。

    63 引用 • 785 回帖 • 248 关注
  • 域名

    域名(Domain Name),简称域名、网域,是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。

    43 引用 • 208 回帖
  • Swift

    Swift 是苹果于 2014 年 WWDC(苹果开发者大会)发布的开发语言,可与 Objective-C 共同运行于 Mac OS 和 iOS 平台,用于搭建基于苹果平台的应用程序。

    34 引用 • 37 回帖 • 506 关注
  • Hprose

    Hprose 是一款先进的轻量级、跨语言、跨平台、无侵入式、高性能动态远程对象调用引擎库。它不仅简单易用,而且功能强大。你无需专门学习,只需看上几眼,就能用它轻松构建分布式应用系统。

    9 引用 • 17 回帖 • 611 关注
  • 机器学习

    机器学习(Machine Learning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。

    76 引用 • 37 回帖