gradle 生成 pom,引用mybatis-plus源代码到自己的工程中

一 前情概要

自己的maven工程使用mybatis-plus,然后想用热部署加载mapping文件。经过各种探索之后实现了,但是修改了xml文件后,就不断在控制台提示“mapper xxx is ignored, because it exists, maybe from xml file”,看着烦。

翻看了源代码,是有这样的提示,我原先想法很简单,消除这个提示就好了。于是想mybatis-plus源代码引入到自己的工程下面,方便查看源代码。

二 方案和思路

1、在idea中用import module的办法加入 mybatis-plus。但我的工程是maven构建的,mybatis-plus是gradle的构建的。需要通过gradle生成pom.xml文件才能引入。

2、后来想到以前用eclipse link source加载了源代码。但没有用。毕竟很久没有用eclipse了。

三 坎坷过程

gradle生成pom.xml的过程很坎坷。虽然默认会在poms下生成,但是我想生成后就能像真正的maven工程一样。于是各种摸索。最后是好了,都不知道是那几次实验后的合并结果。

虽然导入了 mybatis-plus的源代码,但是启动了报错,我以为是 mybatis-plus的问题,却没想到是自己代码本身的问题,又坑了一下。

因为之前试过一次确实是 mybatis-plus的问题。

好吧,坎坷细节说不完。

 

四 最终解决

我使用的是  mybatis-plus 3.1.1 。最终转换成了maven工程,然后在自己的工程引入 mybatis-plus的各种包,然后启动,终于好了。

1、转换maven工程,用gradle生成pom.xml文件必须要做的:

在根目录的build.gradle头部合适位置增加内容(红色字体),classpath 'commons-lang:commons-lang:2.6' 必须要有

apply plugin: 'java'
apply plugin: 'maven'

task convert2Maven {
    doLast {
        file("$buildDir/poms/pom-default.xml").renameTo(file("$rootDir/pom.xml"))
    }
}
install.dependsOn(convert2Maven)

buildscript {
    repositories {
        maven { url "https://maven.aliyun.com/nexus/content/groups/public" }
        mavenCentral()
        maven { url "https://plugins.gradle.org/m2/" }
    }

    dependencies {
        //noinspection DifferentKotlinGradleVersion
        classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.30'
        classpath "gradle.plugin.com.hierynomus.gradle.plugins:license-gradle-plugin:0.15.0"
        classpath 'commons-lang:commons-lang:2.6'

    }
}

 

然后subprojects要增加内容,在其他task同级位置增加 writeNewPom

    apply plugin: 'java'
    apply plugin: 'maven'
    apply plugin: 'idea'

task writeNewPom {
pom {
project {
groupId mvn_groupId
artifactId mvn_artifactId
version mvn_version
packaging 'jar'
}
}.writeTo("$buildDir/../pom.xml")
}

 

 

2、自己工程要引入的:

        <!-- 如果加载本地的mybatis就不用mybatis-spring-boot-starter 不然会出错
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
        </dependency>
        -->

 

            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>3.1.1</version>
            </dependency>
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-annotation</artifactId>
                <version>3.1.1</version>
            </dependency>
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-core</artifactId>
            </dependency>
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-dts</artifactId>
                <version>3.1.1</version>
            </dependency>
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-extension</artifactId>
                <version>3.1.1</version>
            </dependency>
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-annotation</artifactId>
                <version>3.1.1</version>
            </dependency>
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-core</artifactId>
                <version>3.1.1</version>
            </dependency>

 

3、如果出现各种报错,就把缺失的包都引入就好了。

 

 

 

writeNewPom

posted @ 2019-09-07 13:23  香巴拉  阅读(3510)  评论(1编辑  收藏  举报