教你基于spring-boot构建的一个的maven工程脚手架(初建团队看过来)

叁叁肆2018-10-25 11:40

此文已由作者刑军授权网易云社区发布。

欢迎访问网易云社区,了解更多网易技术产品运营经验。


1. 写给Java初建团队


开头写给使用java作为技术栈的小伙伴们。如果你和你的团队打算以java为主要后端开发语言,在团队建设之初,就可以考虑如何减少团队成员之间的协作成本,和新人入门的成本。理想的情况是,团队的代码产出,在风格和规范上尽量看齐,工程的框架遵循规范或者约定。


  • 代码规范方面有《阿里巴巴java开发手册》

  • 工程框架可以遵循良好的mvc原则进行模块划分


如此,无论“新人入职,老人离职,休假互备”,你伙伴的代码都可以比较容易接手。


2. 严选数据产品的工程框架


下面分享下严选数据产品的工程框架划分



注: 工程结构仅为脚手架生成的结构,或者推荐结构,具体的项目可以略作调整,或者部分子工程并不需要


  • dao: 数据访问模块

  • integration: 集成所有外部服务的访问(包括消息队列等)

  • model:定义通用模型,如果开放外部服务被外部服务sdk引用

  • common:定义内部模型,工具类等

  • biz:处理中间层业务逻辑

  • web:给前端提供各种异步、同步请求处理

  • service:开放给其他产品用的接口

  • assembly: 工程装配层,提供spring boot启动类,spring boot工程配置,spring可运行工程打包

  • test: 集成测试层,依赖spring工程装配的测试用例


参考技术栈


frame jdk
spring-boot jdk8


严选数据产品Java工程脚手架


定义好的Java工程框架最好有自动化的工具可以帮助新项目启动时快速完成整体工程的构建,避免重复的工作


输入:


 mvn archetype:generate -DarchetypeGroupId=com.netease.mail.dp -DarchetypeArtifactId=template-archetype -DarchetypeVersion=1.0-SNAPSHOT -DarchetypeRepository=http://repo.mail.netease.com/artifactory/repo
  • 参考artifactId: 工程缩写如dqs

  • 默认version: 1.0-SNAPSHOT

  • 参考package: com.netease.mail.dp.{工程缩写}


注:目前的脚手架是最初级的,仅仅提供了工程构建的作用,在产品类型高度一致的团队内部,可以考虑把日志处理,权限集成,数据库配置,打包构建配置等更多的内容加入到脚手架中


3. 教你如何构建一个基础的Maven脚手架


本文的方法是基于一个已经构建好的初始化工程:



  • step1. 首先在配置好的工程根目录下执行mvn archetype:create-from-project,成功后如图所示:

  • step2. 进入到target/generated-sources/archetype目录,执行mvn install,此时工程模板已经被安装到maven本地仓库,可以通过执行如下命令按照提示构建一个新的maven工程


mvn archetype:generate -DarchetypeGroupId=com.netease.mail.dp -DarchetypeArtifactId=template-archetype -DarchetypeVersion=1.0-SNAPSHOT -DarchetypeCatalog=local
  • step3. 如果要和团队的小伙伴们分享,当然要deploy到远程仓库,执行mvn deploy,前提当然是指定一个mvn仓库,如我在dp-template的pom.xml中指定了:

    <distributionManagement>
          <downloadUrl>http://repo.mail.netease.com/artifactory</downloadUrl>
          <repository>
              <uniqueVersion>false</uniqueVersion>
              <id>RepoMail</id>
              <url>http://repo.mail.netease.com/artifactory/libs-release-local</url>
              <layout>default</layout>
          </repository>
          <snapshotRepository>
              <uniqueVersion>true</uniqueVersion>
              <id>RepoMail</id>
              <url>http://repo.mail.netease.com/artifactory/libs-snapshot-local</url>
              <layout>default</layout>
          </snapshotRepository>
      </distributionManagement>
    
      <repositories>
          <repository>
              <id>hzntes-mail</id>
              <name>NTES-MAIL-HZ Maven Repository</name>
              <url>http://repo.mail.netease.com/artifactory/repo</url>
          </repository>
      </repositories>
  • step4.  上传到远程仓库后小伙伴就可以通过远程仓库构建新的maven工程了

mvn archetype:generate -DarchetypeGroupId=com.netease.mail.dp -DarchetypeArtifactId=template-archetype -DarchetypeVersion=1.0-SNAPSHOT -DarchetypeRepository=http://repo.mail.netease.com/artifactory/rep



网易云免费体验馆,0成本体验20+款云产品! 

更多网易技术、产品、运营经验分享请点击



相关文章:
【推荐】 BRVAH(让RecyclerView变得更高效) (3)
【推荐】 Question|移动端虚拟机注册等作弊行为的破解之道