zoukankan      html  css  js  c++  java
  • 开发原则之约定大于配置

    开发过程中处处用到了”约定大于配置“的原则,甚至团队开发规范、开发编译环境等等也是要大家约定来执行的。以Java构建为例,从ant到maven再到gradle都是更好更方面的实现了”约定大于配置“的思想。
    在ant和bat时代,经常要为每个项目写或修改脚本,即便项目主要目录结构也要在代码里体现。
    到maven时代,通过约定简化了很多东西:pom.xml所在的目录应为项目的根目录,假设该目录为${proj-dir},那么Maven有以下假设:
    • ${proj-dir}/src/main/java —— 存放项目的.java文件。
    • ${proj-dir}/src/main/resources —— 存放项目资源文件,如spring, hibernate配置文件。
    • ${proj-dir}/src/test/jave —— 存放所有测试.java文件,如JUnit测试类。
    • ${proj-dir}/src/test/resources —— 测试资源文件。
    • ${proj-dir}/target —— 项目输出位置。

    运行一条mvn clean package命令,Maven会帮你清除target目录,重新建一个空的,编译src/main/java类至target/classes,复制src/main/resources的文件至target/classes,编译src/test/java至target/test-classes,复制src/test/resources的文件至target/test-classes;然后运行所有测试;测试通过后,使用jar命令打包,存储于target目录。Maven做的事情一点也不少,只是都对用户隐蔽起来了,它只要求你遵循它的约定。

    到现在逐渐流行的gradle,更简化了maven相关的配置。比如引入hibernate依赖

    采用 Maven

    <dependency><groupId>org.hibernate</groupId><artifactId>hibernate-core</artifactId><version>4.3.6.Final</version></dependency>

    采用 Gradle 只需一行

    org.hibernate:hibernate-core:4.3.6.Final





  • 相关阅读:
    Linux链接库一(动态库,静态库,库放在什么路径下)
    scp指令的学习
    注册表语法
    汇编指令
    PS7.0快捷键和使用技巧
    Lrc歌词-开发标准
    VBS 创建快捷方式
    LDAP属性对照表
    按键精灵对VBS的支持
    英寸、磅等单位的换算
  • 原文地址:https://www.cnblogs.com/doit8791/p/5724294.html
Copyright © 2011-2022 走看看