一、dependencyManagement
1. Framework相关jar包,统一父pom版本号,内部Module相互之间的应用,都引用${project.2.version},子Module不设置version,集成父pom的版本号,发版framework统一发版本。
2. 通过增加pommgmt项目单独管理第三方依赖包的管理,海鼎内部的jar包版本管理,不通过pommgmt管理。
business module自行管理。
3. Business 项目import公共的pommgmt pom文件实现dependencymanagement,
Framework对应的jar包,不放在pommgmt中管理,而在Business显示声明。
Framework的jar包间的引用,其版本号依赖于父pom的版本,同时import pommgmt pom文件 。
4. 同一父POM下的所有子Module不配置版本号,集成父pom的版本号,示例:
<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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.hd123.zjlh.cntr</groupId> <artifactId>zjlh-cntr-server-parent</artifactId> <version>2.2.4-SNAPSHOT</version> </parent> <artifactId>zjlh-cntr-web</artifactId> <packaging>war</packaging> <name>Web</name> <description>Web应用,负责提供最终用户界面。</description> <dependencies> <dependency> <groupId>${project.groupId}</groupId> <artifactId>zjlh-cntr-api</artifactId> </dependency> <dependency> <groupId>${project.groupId}</groupId> <artifactId>zjlh-cntr-server</artifactId> <version>${project.version}</version> </dependency> </dependencies>
二. maven项目的dependencies定义规范:
1 暂不纠结,每个业务项目定义自己需要的依赖。 framework也定义自己的依赖,可以全量。
三、Maven release版本管理 采用release插件,
父pom,配置scm,子module不配置scm,但需要使用标准的trunk/tags/branch结构:
<scm> <connection>scm:svn:http://hddenv02/svn/zjlh-cntr/src/server/trunk</connection> <developerConnection>scm:svn:http://hddenv02/svn/zjlh-cntr/src/server/trunk</developerConnection> <url>http://hddenv02/svn/zjlh-cntr/src/server/trunk</url> </scm> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-release-plugin</artifactId> <version>2.2.2</version> <configuration> <checkModificationExcludes> <checkModificationExclude>.project</checkModificationExclude> <checkModificationExclude>.classpath</checkModificationExclude> <checkModificationExclude>derby.log</checkModificationExclude> </checkModificationExcludes> <tagNameFormat>@{project.version}</tagNameFormat> <autoVersionSubmodules>true</autoVersionSubmodules> </configuration> </plugin>