zoukankan      html  css  js  c++  java
  • Maven、SpringBoot框架结构优化

    一、创建maven项目,名为test-parent,pom文件如下:

     1 ...        
     2         <artifactId>test-parent</artifactId>
     3       <version>0.0.1-SNAPSHOT</version>
     4       <packaging>pom</packaging><!--这个值默认是jar,一般不专门定义。这里值是pom,这个项目里只有一个pom文件-->
     5 ...
     6         <properties><!--这里定义<depencies>引入的jar的版本值-->
     7         <drools.version>7.1.0.Final</drools.version>
     8         <springloaded.version>1.2.6.RELEASE</springloaded.version>
     9         <axis.version>1.4</axis.version>
    10         <axis-jaxrpc.version>1.2.1</axis-jaxrpc.version>
    11     </properties>
    12 ...
    13         <repositories><!--这里定义私服地址-->
    14         ...    
    15         </repositories>
    16 ...
    17         <dependencies>
    18             <dependency>
    19                 <groupId>org.drools</groupId><!--ctrl+单击可以查看jar包的pom文件-->
    20                 <artifactId>drools-bom</artifactId>
    21                 <type>pom</type>
    22                 <version>${drools.version}</version><!--这里的值在上面<properties>中定义-->
    23                 <scope>import</scope>
    24             </dependency>
    25         ...
    26         </dependencies>        
    27 ...

    test-parent用于统一管理jar包的版本、私服地址。

    分布式开发的多个模块,引用的同一个jar,最好统一一个版本,所以版本放在parent中维护。防止版本太多造成jar包冲突。

    二、建公用vo项目和arch项目

    公用vo项目 test-common-vo:存放分布式开发的其他项目会用到的vo对象,或者公用vo对象。pom.xml:

     1 ...
     2 <parent><!--设置parent为test-parent项目,继承它的pom配置-->
     3     <groupId>com.test</groupId>
     4     <artifactId>test-parent</artifactId>
     5     <version>0.0.1-SNAPSHOT</version>
     6 </parent>
     7 <artifactId>test-common-vo</artifactId>
     8 ...
     9 <depencies><!--用到的jar包即使parent项目有,这里仍然需要配置才能引入-->
    10         ...
    11 </depencies>

    公用arch项目存放公用的方法,比如feign调用其他模块的方法

    将这两个项目package或者deploy打包放到私服上,在parent项目的pom中引入:

     1 ...    
     2 <dependency>
     3     <groupId>com.test</groupId>
     4     <artifactId>test-common-vo</artifactId>
     5     <version>${test-common-vo.version}</version>
     6 </dependency>
     7         <groupId>com.test</groupId>
     8     <artifactId>test-common-arch</artifactId>
     9     <version>${test-common-arch.version}</version>
    10 </dependency> 
    11 ...

    三、业务模块的项目test-yeWu-server

    业务模块的pom配置parent:

     1 ...
     2 <parent><!--配parent-->
     3      <groupId>com.test</groupId>
     4      <artifactId>test-parent</artifactId>
     5      <version>0.0.1-SNAPSHOT</version>
     6 </parent>
     7 <dependency><!--引入公用-->
     8     <groupId>com.test</groupId>
     9     <artifactId>test-common-arch</artifactId>
    10 </dependency>
    11 <!--如果需要vo的话引入-->
    12 <dependency><!--引入公用-->
    13     <groupId>com.test</groupId>
    14     <artifactId>test-common-vo</artifactId>
    15 </dependency>
    16 ...
  • 相关阅读:
    技术人生:墨菲定律
    Ioc:Autofac Registration Concepts
    Ioc:autofac lifetime scope.
    Ioc:The basic pattern for integrating Autofac into your application
    Logstash filter 插件之 date
    配置 Elasticsearch 集群
    Linux 命名管道
    Linux 管道
    Golang 入门 : channel(通道)
    Golang 入门 : 竞争条件
  • 原文地址:https://www.cnblogs.com/mySummer/p/9447411.html
Copyright © 2011-2022 走看看