• java ---- gradle


    在多模块java中

    在最外层的settings.gradle中应该添加如:

    include 'webapi'
    include 'application'
    include 'infrastructure'
    include 'domain'

    这些子modules

    build.gradle中
    apply plugin: 'war' 代表web站点,只有project(':webapi')才能加,其他的加了,同步gradle后,其他的项目会出现新增的web gradle的设置
    apply plugin: 'java' 会自动把引用的project当成一个modules,如果在分多个modules的时候,主项目不要加

    部署命令 gradle clean war -PdeployTo=product 在本地部署gradle build的时候是没有deployTo变量的,需要进行
    if(!project.hasProperty('deployTo')){
    ext.deployTo = 'stage'
    }
    判断
    subprojects  所有的子projects

    allprojects 所有的projects
    project(':webapi'){}相当于设置设置webapi的build.gradle。
    dependencies{
    compile project(':application')
    compile project(':infrastructure')
    compile project(':domain')
    compile group: 'org.springframework',name: 'spring-webmvc',version: '4.0.1.RELEASE'
    }
    在webapi里面代表,webapi依赖application infrastructure domain这些modules
    需要配置文件放在多个modules以达到解耦的目的的时候,如下
    project(':infrastructure'){
    sourceSets {
    main{
    resources {
    srcDir 'src/main/java
                }
    }
    }
    }
    //上面这一步主要是为了接mybatis,因为java下面会放mapper.xml文件,所以确保编译的时候,会出现xml文件。
    web.xml设置如下
    <servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath*:*-servlet.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    </servlet>
    接mybatis多模块的时候注意如下,在infrastructure的modules中
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="trainOffOrder"/>
    <property name="configLocation" value="classpath:mybatisMapperConfig.xml"/>
    </bean>
    classpath:不要再冒号前面加*号,因为*号无法扫描其他jar包里的东西
    <!-- spring与mybatis整合配置,扫描所有dao,在单数据源的情况下可以不写sqlSessionFactoryBeanName -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="interfaces.Repository"/>
    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
    </bean>
    这里扫描的包,不要包含带有其他注解的类,否则其他注解的类无法进行注入。只注解repository。



    项目部署:
    git tag -a v1.4 -m 'my version 1.4' 带注释的标签, git show v1.4 显示1.4和上个tag比较的改动
    git tag v1.4-lw 轻量级 不带注释的标签创建

    git push origin [tagname] 将tag推到远端
    git checkout tag_name 拉取tag对应的代码

    可以在gradle窗口里看各种task,在
    project(':infrastructure'){
    sourceSets {
    main{
    resources {
    srcDir 'src/resources'
    }
    }
    }
    jar {
    doFirst {
    //拷贝不同部署环境的配置文件
    if(!project.hasProperty('deployTo')){
    ext.deployTo = 'stage'
    }
    copy{
    from("${projectDir}/deployConfig/${deployTo}") {
    include('**/*')
    }
    into("${project.buildDir}/resources/main")
    }
    delete "${project.buildDir}/libs"
    }
    }
    dependencies{
    compile project(':domain')
    compile group:'org.mybatis',name:'mybatis',version:'3.4.5'
    compile group:'com.ly.tcbase.phoenix',name: 'mysql',version: '1.0.2-20171011.041935-1'
    }
    }
    这样可以根据不同的环境加载不同的配置,因为我看到jar这个task,我的理解就是打jar包,所以在打jar包之前,我把配置文件替换掉。结果是OK的。



  • 相关阅读:
    iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(二)
    iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(一)
    iOS开发UI篇—简单介绍静态单元格的使用
    iOS开发UI篇—UITableview控件使用小结
    ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布局
    iOS开发UI篇—使用xib自定义UItableviewcell实现一个简单的团购应用界面布局
    iOS开发UI篇—使用嵌套模型完成的一个简单汽车图标展示程序
    iOS开发UI篇—实现UItableview控件数据刷新
    iOS开发UI篇—推荐两个好用的Xcode插件(提供下载链接)
    人人都应学习的公链知识——比原总体架构
  • 原文地址:https://www.cnblogs.com/Garin/p/9585066.html
Copyright © 2020-2023  润新知