Java_聚合工程_POM

Java_聚合工程_POM

简述

Maven工程的拆分和聚合

(1)定义父工程,集中管理依赖版本,模块基于父工程进行创建;
(2)模块拆分的越细,可重用越高,避免重复代码
(3)模块之间需要通过依赖来建立关系;
(4)三层结构(dao:取数据;service:业务处理;controller:展现数据)

项目三层拆分示例

(1)创建parent工程(pom)
(2)创建dao模块(jar),引入dao相关依赖、代码和配置文件(applicationContext-dao.xml、jdbc.properties)
(3)创建service模块(jar),引入dao模块,引入service相关依赖、代码和配置文件(applicationContext-service.xml,还需要导入applicationContext-dao.xml)
(4)创建controller模块(war),引入service模块,引入controller相关依赖、代码和配置文件(springmvc.xml、log4j.porperties、applicationContext.xml需要导入applicationContext-service.xml)

本地私服

(1)上传配置

1、本地需要安装nexus和maven;
2、在maven的配置文件中配置连接nexus

<server>
    <!--这是server的id(注意不是用户登陆的id),该id与distributionManagement中repository元素的id相匹配。-->
    <id>nexus-releases</id>
    <!--鉴权用户名。鉴权用户名和鉴权密码表示服务器认证所需要的登录名和密码。 -->
    <username>admin</username>
    <password>admin123</password>
</server>
<server>
    <id>nexus-snapshots</id>
    <username>admin</username>
    <password>admin123</password>
</server>

3、在需要发布到私服的模块pom.xml中配置

<!--定义snapshots库和releases库的nexus地址-->
<distributionManagement>
    <repository>
        <id>nexus-releases</id>
        <url>
            http://localhost:8081/nexus/content/repositories/releases/
        </url>
    </repository>
    <snapshotRepository>
        <id>nexus-snapshots</id>
        <url>
            http://localhost:8081/nexus/content/repositories/snapshots/
        </url>
    </snapshotRepository>
</distributionManagement>

4、在需要发布到私服的模块目录下执行命令:deploy

(2)下载配置

1、本地需要安装nexus和maven;
2、在maven的配置文件中配置

<!-- 下载jar包配置 -->
<profile> 
	<!--profile的id -->
	<id>dev</id>
	<repositories>
		<repository> <!--仓库id,repositories可以配置多个仓库,保证id不重复 -->
			<id>nexus</id> <!--仓库地址,即nexus仓库组的地址 -->
			<url>http://localhost:8081/nexus/content/groups/public/</url> <!--是否下载releases构件 -->
			<releases>
				<enabled>true</enabled>
			</releases> <!--是否下载snapshots构件 -->
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</repository>
	</repositories>
	<pluginRepositories> <!-- 插件仓库,maven的运行依赖插件,也需要从私服下载插件 -->
		<pluginRepository> <!-- 插件仓库的id不允许重复,如果重复后边配置会覆盖前边 -->
			<id>public</id>
			<name>Public Repositories</name>
			<url>http://localhost:8081/nexus/content/groups/public/</url>
		</pluginRepository>
	</pluginRepositories>
</profile>

<activeProfiles>
	<activeProfile>dev</activeProfile>
</activeProfiles>

pom.xml

  <!-- 集中定义依赖版本号 -->
	<properties>
		<junit.version>4.12</junit.version>
		<spring.version>4.1.3.RELEASE</spring.version>
		<mybatis.version>3.2.8</mybatis.version>
		<mybatis.spring.version>1.2.2</mybatis.spring.version>
		<mybatis.paginator.version>1.2.15</mybatis.paginator.version>
		<spring.datajpa.version>1.4.1.RELEASE</spring.datajpa.version>
		<hibernate.version>3.6.10.Final</hibernate.version>
		<oracle.version>10.2.0.4.0</oracle.version>
       <mysql.version>5.1.6</mysql.version>
       <postgresql.version>9.3-1102-jdbc4</postgresql.version>
       <struts2.version>2.5.8</struts2.version>
		<slf4j.version>1.6.4</slf4j.version>
		<jackson.version>2.4.2</jackson.version>
		<druid.version>1.0.9</druid.version>
	      <c3p0.version>0.9.1.2</c3p0.version>
	      <bonecp.version>0.8.0.RELEASE</bonecp.version>
		<httpclient.version>4.3.5</httpclient.version>
		<jstl.version>1.2</jstl.version>
		<servlet-api.version>2.5</servlet-api.version>
		<jsp-api.version>2.0</jsp-api.version>
		<joda-time.version>2.5</joda-time.version>
   		<cglib.version>3.1</cglib.version>
		<commons-lang3.version>3.3.2</commons-lang3.version>
		<commons-io.version>1.3.2</commons-io.version>
		<commons-net.version>3.3</commons-net.version>
       <commons-codec.version>1.9</commons-codec.version>
       <hibernate-validator.version>5.1.3.Final</hibernate-validator.version>
		<pagehelper.version>3.4.2-fix</pagehelper.version>
		<jsqlparser.version>0.9.1</jsqlparser.version>
   		<mapper.version>2.3.4</mapper.version>
		<commons-fileupload.version>1.3.1</commons-fileupload.version>
		<jedis.version>2.7.2</jedis.version>
		<solrj.version>4.10.3</solrj.version>
		<hibernate-tools.version>3.6.0.CR1</hibernate-tools.version>
		<poi.version>3.9</poi.version>
		 <pinyin4j.version>2.5.0</pinyin4j.version>
		 <cxf.version>3.1.5</cxf.version>
		 <gson.version>2.6.1</gson.version>
		 <hibernate-search.version>3.4.2.Final</hibernate-search.version>
		<IKAnalyzer.version>3.2.8</IKAnalyzer.version>
		<shiro.version>1.2.4</shiro.version>
		<ehcache.version>2.6.10</ehcache.version>
  		<activiti.version>5.19.0.2</activiti.version>
  		<activiti.version>5.19.0.2</activiti.version>
	</properties>
<!-- 只定义依赖的版本,并不实际依赖 -->
	<dependencyManagement>
		<dependencies>
			<!-- 时间操作组件,页面向mvc中提交date型数据的时候,使用 -->
			<dependency>
				<groupId>joda-time</groupId>
				<artifactId>joda-time</artifactId>
				<version>${joda-time.version}</version>
			</dependency>
			<!-- Apache工具组件lang3 -->
			<dependency>
				<groupId>org.apache.commons</groupId>
				<artifactId>commons-lang3</artifactId>
				<version>${commons-lang3.version}</version>
			</dependency>
		<!-- 延迟加载需要的倚赖包 -->
		<dependency>
			<groupId>cglib</groupId>
			<artifactId>cglib</artifactId>
			<version>${cglib.version}</version>
		</dependency>
			<dependency>
				<groupId>org.apache.commons</groupId>
				<artifactId>commons-io</artifactId>
				<version>${commons-io.version}</version>
			</dependency>
           <!-- ftp -->
			<dependency>
				<groupId>commons-net</groupId>
				<artifactId>commons-net</artifactId>
				<version>${commons-net.version}</version>
			</dependency>
              <!-- md5加密 -->
			<dependency>
				<groupId>commons-codec</groupId>
				<artifactId>commons-codec</artifactId>
				<version>${commons-codec.version}</version>
			</dependency>
        <!-- 数据校验 -->
			<dependency>
				<groupId>org.hibernate</groupId>
				<artifactId>hibernate-validator</artifactId>
				<version>${hibernate-validator.version}</version>
			</dependency>
			<!-- Jackson Json处理工具包 -->
			<dependency>
				<groupId>com.fasterxml.jackson.core</groupId>
				<artifactId>jackson-databind</artifactId>
				<version>${jackson.version}</version>
			</dependency>
			<!-- httpclient -->
			<dependency>
				<groupId>org.apache.httpcomponents</groupId>
				<artifactId>httpclient</artifactId>
				<version>${httpclient.version}</version>
			</dependency>
			<!-- 单元测试 -->
			<dependency>
				<groupId>junit</groupId>
				<artifactId>junit</artifactId>
				<version>${junit.version}</version>
				<scope>test</scope>
			</dependency>
			<!-- 日志处理 -->
			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>slf4j-log4j12</artifactId>
				<version>${slf4j.version}</version>
			</dependency>
			<!-- hibernate核心 -->
			<dependency>
				<groupId>org.hibernate</groupId>
				<artifactId>hibernate-core</artifactId>
				<version>${hibernate.version}</version>
			</dependency>
	       		 <!-- hibernate对jpa支持(整合) -->
			<dependency>
				<groupId>org.hibernate</groupId>
				<artifactId>hibernate-entitymanager</artifactId>
				<version>${hibernate.version}</version>
			</dependency>
			<!-- spring data jpa核心 -->
			<dependency>
				<groupId>org.springframework.data</groupId>
				<artifactId>spring-data-jpa</artifactId>
				<version>${spring.datajpa.version}</version>
			</dependency>
			<!-- Mybatis核心 -->
			<dependency>
				<groupId>org.mybatis</groupId>
				<artifactId>mybatis</artifactId>
				<version>${mybatis.version}</version>
			</dependency>
 	   <!-- spring整合 mybatis -->
			<dependency>
				<groupId>org.mybatis</groupId>
				<artifactId>mybatis-spring</artifactId>
				<version>${mybatis.spring.version}</version>
			</dependency>
        		<!-- mybatis分页插件 -->
			<dependency>
				<groupId>com.github.miemiedev</groupId>
				<artifactId>mybatis-paginator</artifactId>
				<version>${mybatis.paginator.version}</version>
			</dependency>
        		<!-- pagehelper分页 -->
			<dependency>
				<groupId>com.github.pagehelper</groupId>
				<artifactId>pagehelper</artifactId>
				<version>${pagehelper.version}</version>
			</dependency>
		<dependency>
			<groupId>com.github.jsqlparser</groupId>
			<artifactId>jsqlparser</artifactId>
			<version>${jsqlparser.version}</version>
		</dependency>
        <!-- 通用Mapper -->
        <dependency>
           <groupId>com.github.abel533</groupId>
           <artifactId>mapper</artifactId>
           <version>${mapper.version}</version>
        </dependency>
      		 <!-- Oracle驱动 -->
		<dependency>
			<groupId>com.oracle</groupId>
			<artifactId>ojdbc14</artifactId>
			<version>${oracle.version}</version>
			<scope>runtime</scope>
		</dependency>
       <!-- mysql驱动 -->
       <dependency>
         <groupId>mysql</groupId>
         <artifactId>mysql-connector-java</artifactId>
         <version>${mysql.version}</version>
         <scope>runtime</scope>
       </dependency>
	<dependency>
		<groupId>org.postgresql</groupId>
		<artifactId>postgresql</artifactId>
		<version>${postgresql.version}</version>
   <scope>runtime</scope>
	</dependency>
			<!-- alibaba连接池 -->
			<dependency>
				<groupId>com.alibaba</groupId>
				<artifactId>druid</artifactId>
				<version>${druid.version}</version>
			</dependency>
       		<!-- c3p0连接池 -->
		<dependency>
			<groupId>c3p0</groupId>
			<artifactId>c3p0</artifactId>
			<version>${c3p0.version}</version>
		</dependency>
	    <!-- bonecp连接池 -->
        	<dependency>
           <groupId>com.jolbox</groupId>
           <artifactId>bonecp-spring</artifactId>
           <version>${bonecp.version}</version>
        	</dependency>
	    <!-- struts核心 -->
			<dependency>
				<groupId>org.apache.struts</groupId>
				<artifactId>struts2-core</artifactId>
				<version>${struts2.version}</version>
			</dependency>
	        	<!-- struts综合spring插件 -->
			<dependency>
				<groupId>org.apache.struts</groupId>
				<artifactId>struts2-spring-plugin</artifactId>
				<version>${struts2.version}</version>
			</dependency>
	        	<!-- struts自动json插件 -->
			<dependency>
				<groupId>org.apache.struts</groupId>
				<artifactId>struts2-json-plugin</artifactId>
				<version>${struts2.version}</version>
			</dependency>
	        	<!-- struts约定注解开发 -->
			<dependency>
				<groupId>org.apache.struts</groupId>
				<artifactId>struts2-convention-plugin</artifactId>
				<version>${struts2.version}</version>
			</dependency>
      		<!-- Spring 核心提供了大量扩展 -->
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-context</artifactId>
				<version>${spring.version}</version>
			</dependency>
        		<!-- spring bean -->
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-beans</artifactId>
				<version>${spring.version}</version>
			</dependency>
        		<!-- springMVC核心 -->
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-webmvc</artifactId>
				<version>${spring.version}</version>
			</dependency>
        		<!-- spring jdbc事物管理 -->
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-jdbc</artifactId>
				<version>${spring.version}</version>
			</dependency>
        		<!-- springAOP -->
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-aspects</artifactId>
				<version>${spring.version}</version>
			</dependency>
        <!-- spring注解测试 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${spring.version}</version>
        </dependency>
			<!-- jstl -->
			<dependency>
				<groupId>jstl</groupId>
				<artifactId>jstl</artifactId>
				<version>${jstl.version}</version>
			</dependency>
  			 <!-- servlet -->
			<dependency>
				<groupId>javax.servlet</groupId>
				<artifactId>servlet-api</artifactId>
				<version>${servlet-api.version}</version>
				<scope>provided</scope>
			</dependency>
  			  <!-- jsp -->
			<dependency>
				<groupId>javax.servlet</groupId>
				<artifactId>jsp-api</artifactId>
				<version>${jsp-api.version}</version>
				<scope>provided</scope>
			</dependency>
			<!-- 文件上传组件 -->
			<dependency>
				<groupId>commons-fileupload</groupId>
				<artifactId>commons-fileupload</artifactId>
				<version>${commons-fileupload.version}</version>
			</dependency>
			<!-- Redis客户端 -->
			<dependency>
				<groupId>redis.clients</groupId>
				<artifactId>jedis</artifactId>
				<version>${jedis.version}</version>
			</dependency>
			<!-- solr客户端 -->
			<dependency>
				<groupId>org.apache.solr</groupId>
				<artifactId>solr-solrj</artifactId>
				<version>${solrj.version}</version>
			</dependency>
			  <!-- hibernate工具,表反转生成实体类 -->		
			  <dependency>
				<groupId>org.hibernate</groupId>
				<artifactId>hibernate-tools</artifactId>
				<version>${hibernate-tools.version}</version>
	            		<!-- 排除重复 -->
						<exclusions>
							<exclusion>
								<artifactId>freemarker</artifactId>
								<groupId>freemarker</groupId>
							</exclusion>
						</exclusions>
			</dependency>
			<!-- apache POI处理office核心 -->
			<dependency>
				<groupId>org.apache.poi</groupId>
				<artifactId>poi</artifactId>
				<version>${poi.version}</version>
			</dependency>
			<!-- apache POI处理office -->
			<dependency>
				<groupId>org.apache.poi</groupId>
				<artifactId>poi-ooxml</artifactId>
				<version>${poi.version}</version>
			</dependency>
			<!-- 汉字转拼音pinyin4j -->
			<dependency>
				<groupId>com.belerweb</groupId>
				<artifactId>pinyin4j</artifactId>
				<version>2.5.0</version>
			</dependency>
			<!-- cxf-WebServic框架-->
		  	 <dependency>
		        <groupId>org.apache.cxf</groupId>
		        <artifactId>cxf-rt-frontend-jaxws</artifactId>
		        <version>${cxf.version}</version>
		    </dependency>
		    <dependency>
		        <groupId>org.apache.cxf</groupId>
		        <artifactId>cxf-rt-transports-http</artifactId>
		        <version>${cxf.version}</version>
		    </dependency>
		    <!-- gson json序列化和反序列化 -->
			<dependency>
				<groupId>com.google.code.gson</groupId>
				<artifactId>gson</artifactId>
				<version>${gson.version}</version>
			</dependency>
			<!-- hibernate search全文索引 -->
			<dependency>
				<groupId>org.hibernate</groupId>
				<artifactId>hibernate-search</artifactId>
				<version>${hibernate-search.version}</version>
			</dependency>
				<!-- ik分词器 -->	
			<dependency>
			  <groupId>IKAnalyzer</groupId>
			  <artifactId>IKAnalyzer</artifactId>
			  <version>${IKAnalyzer.version}</version>
			</dependency>
			<!-- shiro权限认证 -->
			<dependency>
				<groupId>org.apache.shiro</groupId>
				<artifactId>shiro-all</artifactId>
				<version>${shiro.version}</version>
			</dependency>
	        	<!-- ehcache核心 -->
			<dependency>
				<groupId>net.sf.ehcache</groupId>
				<artifactId>ehcache-core</artifactId>
				<version>${ehcache.version}</version>
			</dependency>
			 <!-- activiti核心依赖 -->
	      <dependency>
	          <groupId>org.activiti</groupId>
	          <artifactId>activiti-engine</artifactId>
	          <version>${activiti.version}</version>
	      </dependency>
	      <!-- spring整合activiti -->
	      <dependency>
	          <groupId>org.activiti</groupId>
	          <artifactId>activiti-spring</artifactId>
	          <version>${activiti.version}</version>
	      </dependency>
		</dependencies>
	</dependencyManagement>
	<build>
		<finalName>${project.artifactId}</finalName>
		<plugins>
			<!-- 资源文件拷贝插件 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-resources-plugin</artifactId>
				<version>2.7</version>
				<configuration>
					<encoding>UTF-8</encoding>
				</configuration>
			</plugin>
			<!-- java编译插件 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.2</version>
				<configuration>
					<source>1.7</source>
					<target>1.7</target>
					<encoding>UTF-8</encoding>
				</configuration>
			</plugin>
		</plugins>
		<pluginManagement>
			<plugins>
				<!-- 配置Tomcat插件 -->
				<plugin>
					<groupId>org.apache.tomcat.maven</groupId>
					<artifactId>tomcat7-maven-plugin</artifactId>
					<version>2.2</version>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>

猜你喜欢

转载自blog.csdn.net/qq_15764943/article/details/88087594
今日推荐