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
gradle 生成 pom,引用mybatis-plus源代码到自己的工程中的更多相关文章
- JAVA - SpringBoot项目引用MyBatis操作数据库
JAVA - SpringBoot项目引用MyBatis操作数据库 1. 创建SpringBoot项目,参考:https://www.cnblogs.com/1285026182YUAN/p/1232 ...
- mybatis 自动生成代码(mybatis generator)
pom.xml 文件配置 引入 mybatis generator <properties> <mysql.connector.version>5.1.44</mysql ...
- FreeMarker 生成Java、mybatis文件
FreeMarker 生成Java.mybatis文件 将mysql数据库表通过FreeMarker生成对应的Java文件和对应的mybatis文件. FreeMarker是一款模板引擎: 即一种基于 ...
- 外包采用Gradle生成多套app打包
目的:可修改app名称.icon.包名.接口地址及其它 一. 修改基本配置(包名.版本号等) 配置module下的build.gradle 添加productFlavors例如: produ ...
- 只包含schema的dll生成和引用方法
工作中,所有的tools里有一个project是只包含若干个schema的工程,研究了一下,发现创建这种只包含schema的dll其实非常简单. 首先,在visual studio-new proje ...
- 错误 4 自定义工具错误: 无法生成服务引用“DepartMentService”的代码。请检查其他错
原文:错误 4 自定义工具错误: 无法生成服务引用"DepartMentService"的代码.请检查其他错 问题: 错误 4 自定义工具错误: 无法生成服务引用" ...
- (转)通过maven,给没有pom文件的jar包生成pom文件,maven项目引入本地jar包
文章完全转载自 : https://blog.csdn.net/qq_31289187/article/details/81117478 问题一: 经常遇到公司私服或者中央仓库没有的jar包,然后通过 ...
- 错误 3 未找到类型“sdk:Label”。请确保不缺少程序集引用并且已生成所有引用的程序集。
错误: 错误 3 未找到类型“sdk:Label”.请确保不缺少程序集引用并且已生成所有引用的程序集. 错误 1 命名空间“http://schemas.microsoft.com/winfx/200 ...
- 通过lib生成pom坐标
package com.jinloooong.demo.util; import com.alibaba.fastjson.JSONObject; import org.dom4j.Element; ...
随机推荐
- ecshop二次开发之视频上传
1.前台展示效果: 2.后台展示效果: 3.代码实现: 后台实现过程: 1.在languages/zh_cn/admin/goods.PHP中插入 $_LANG['tab_video'] = '视频上 ...
- Watering Grass (贪心,最小覆盖)
参考: https://blog.csdn.net/shuangde800/article/details/7828675 https://www.cnblogs.com/haoabcd2010/p/ ...
- 【水滴石穿】react-native-video-project
感觉这个是很有才华的博主,毕竟是可以在npm 包里面留后门的程序员 博主的gihtub关于这个项目的地址是:https://github.com/ikimiler/react-native-video ...
- QT加载qss
QString CommonHelper::setStyle(const QString &style) { QByteArray str; QFile qss(style); qss.ope ...
- COOKIE与SESSION的详解
cookie与session的小例子: 包含cookie记住登录名,session防止用户非法登录2个例子: 问我拿吧,这个下载连接挂了 描述 cookie过程描述 网站为了辨别用户身份.进行 ses ...
- PHP学习(mysqli函数)
php是一种运行在服务器端的程序语言,用于生产动态网页内容.特点:开源,简单,易上手,跨平台(windows,linux),占用资源少,尤其适合中小型应用开发.(微博,微信,论坛等等)一,搭建软件环境 ...
- 剑指offer 1-6
1. 二维数组中的查找 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 分析 ...
- [转]overflow:hidden真的失效了吗
项目中常常有同学遇到这样的问题,现象是给元素设置了overflow:hidden,但超出容器的部分并没有被隐藏,难道是设置的hidden失效了吗?其实看似不合理的现象背后都会有其合理的解释. 我们知道 ...
- [React Native]升级React Native版本
React Native正式版本还没发布,但是小版本基本上每个月都更新1-2次.9月11号又更新了0.33版本,其中有两个增强功能正好是项目中用到的. 添加Android6.0权限验证API Add ...
- 【windows系统下的navicat与ubuntu中的mysql的连接方法】
##红色代码直接复制到终端 1.首先,终端上mysql -u root -p,进入你的mysql数据库,操作数据库use mysql.2.切换root权限:sudo -i3.对root授权,输入:gr ...