中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

shade解決(jue)mybatis包(bao)沖(chong)突(tu)

目前(qian)有一個(ge)項目,A是(shi)第三方(fang)應用(yong),代碼不公開,不能(neng)修改,使用(yong)的(de)(de)(de)是(shi)mybatis plugs3.3.1,而當(dang)前(qian)項目是(shi)我們自己(ji)的(de)(de)(de)B,它需(xu)要用(yong)到A里的(de)(de)(de)方(fang)法(fa),B里mybatis plugs版本是(shi)2.3,目前(qian)在(zai)使用(yong)過程中出現了問題,這兩個(ge)版本的(de)(de)(de)有些方(fang)法(fa),注解都發(fa)生了很(hen)大的(de)(de)(de)變(bian)化 :

mybatis 3.x BaseMapper注解的位置:import com.baomidou.mybatisplus.core.mapper.BaseMapper;
mybatis 2.x BaseMapper注解的位置:import com.baomidou.mybatisplus.mapper.BaseMapper;
這兩(liang)個(ge)版(ban)本(ben)對(dui)于很多注解,接口,方(fang)法(fa),類都是(shi)不同的,兩(liang)個(ge)版(ban)本(ben)無法(fa)兼容,當我們項(xiang)目(mu)引用A項(xiang)目(mu)之(zhi)后,就出現A版(ban)本(ben)里(li)使(shi)用mybatis的一些錯誤,就是(shi)方(fang)法(fa),類未找到的錯誤。

shade插件進行解決

我們需要(yao)引用a-shade這個項目,它(ta)來依(yi)賴a,然后在它(ta)里(li)(li)使(shi)用shade插件(jian)對a里(li)(li)的(de)mybatis進行重命名,再由b直接引用a-shade,這時 a里(li)(li)的(de)方(fang)法也(ye)就有了(le),并且引用了(le)mybatis的(de)地方(fang)都換(huan)成(cheng)了(le)shade開頭(tou)的(de)包(bao)了(le)

graph TD a(mybatis2.3)-->b(我們的項目) c(mybatis3.3.1)-->d(第三方項目) d-->f(對第三方項目進行shade)

實現圖

graph TD A(第三方項目)-->B(A-shade繼承A并且重寫mybatis) B-->C(我們自己的項目)

a-shade.jar反編譯之后

圖

a-shade項目的shade代碼

   <artifactId>a-service-shade</artifactId>
    <dependencies>
        <dependency>
            <groupId>com.lind</groupId>
            <artifactId>a-service</artifactId>
            <version>1.0.0</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.2.1</version>

                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <!-- 不生成dependency-reduced-pom.xml-->
                            <createDependencyReducedPom>false</createDependencyReducedPom>
                            <relocations>
                                <relocation>
                                    <pattern>com.baomidou</pattern>
                                    <shadedPattern>shade.com.baomidou</shadedPattern>
                                </relocation>
                            </relocations>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

引用a-shade

打包發布后,B項目(mu)直(zhi)接使用a-shade這個包即可,其它代碼不(bu)需要修改

 <dependency>
    <groupId>com.lind</groupId>
     <artifactId>a-shade</artifactId>
     <version>1.0.1</version>
 </dependency>
posted @ 2020-06-29 11:09  張占嶺  閱讀(1013)  評論(0)    收藏  舉報