1. 程式人生 > >mybatis外掛--(1)--mybatis generator自定義外掛或者擴充套件報Cannot instantiate object of type XXX

mybatis外掛--(1)--mybatis generator自定義外掛或者擴充套件報Cannot instantiate object of type XXX

1、錯誤說明

mybatis generator確實好用,但是離我們的生產程式碼還是有差別的
比如缺少,toString hashCode equals等方法,或者自定一的一些註釋,作者資訊等。
官方文件也說可以自定義外掛,但是當我們滿心歡喜的繼承或者實現了mybatis-generator的類或者介面的時候,已執行,報錯了,並且我們有預設的空構造。報錯如下:

Failed to execute goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.6:generate (default-cli) on project damon: Execution default
-cli of goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.6:generate failed: Cannot instantiate object of type cn.edu.zua.damon.util.MyDefaultCommentGenerator -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3
.6:generate (default-cli) on project damon: Execution default-cli of goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.6:generate failed: Cannot instantiate object of type cn.edu.zua.damon.util.MyDefaultCommentGenerator at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:213
) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:51) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:309) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:194) at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:107) at org.apache.maven.cli.MavenCli.execute (MavenCli.java:955) at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290) at org.apache.maven.cli.MavenCli.main (MavenCli.java:194) at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke (Method.java:498) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289) at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356) at org.codehaus.classworlds.Launcher.main (Launcher.java:47) Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default-cli of goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.6:generate failed: Cannot instantiate object of type cn.edu.zua.damon.util.MyDefaultCommentGenerator at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:145) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:208) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:51) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:309) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:194) at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:107) at org.apache.maven.cli.MavenCli.execute (MavenCli.java:955) at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290)

經過耐心的搜尋和尋找,大致確定了錯誤。
錯誤就是,mybatis-generator 的plugin有自己的classpath,我們在專案中直接繼承的類和plugin不屬於同一個classpath。這一點在官方文件有一點提到,
這裡寫圖片描述
但是官方文件並沒有明確說明,當我們自定義的外掛該放到哪裡。

到這裡,問題就解決了。
我們需要吧自己寫的外掛封裝成一個jar,然後在plugin中新增依賴,或者安裝到本地,或者專案倉庫。

2、解決方案

方案一

在plugin的pom中新增jar依賴

<dependency>
     <groupId>xxx</groupId>
     <artifactId>xxx</artifactId>
     <version>1.0</version>
     <scope>system</scope>
     <systemPath>F:/xxx/lib/xxx.jar</systemPath>
</dependency>

方案二

<dependency>
    <groupId>xxx</groupId>
    <artifactId>xxx</artifactId>
    <version>1.0</version>
</dependency>

方案三

<repositories>
    <repository>
        <id>in-project-repo</id>
        <releases>
            <checksumPolicy>ignore</checksumPolicy>
        </releases>
        <url>file://${project.basedir}/repo</url>
    </repository>
</repositories>
...
<build>
...
...
<dependency>
    <groupId>xxx</groupId>
    <artifactId>xxx</artifactId>
    <version>1.0</version>
</dependency>

希望對你有幫助

相關推薦

mybatis外掛--(1)--mybatis generator定義外掛或者擴充套件Cannot instantiate object of type XXX

1、錯誤說明 mybatis generator確實好用,但是離我們的生產程式碼還是有差別的 比如缺少,toString hashCode equals等方法,或者自定一的一些註釋,作者資訊等。 官方文件也說可以自定義外掛,但是當我們滿心歡喜的繼承或者實現

mapper-spring-boot-starter和逆向工程配合生成Cannot instantiate object of type tk.mybatis.mapper.generator.

我一直以為逆向工程只需要一個 <build> <plugins> <!--逆向工程--> <plugin> <groupId>org.mybatis.ge

使用mybatis-generator新增定義外掛時提示無法例項化外掛Cannot instantiate object of type

報錯資訊: Execution default-cli of goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.6:generate failed: Cannot instantiate object

MyBatis Generator錯:Cannot instantiate object of type

1.錯誤資訊 [ERROR] Failed to execute goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.2:generate (default-cli) on proje

MyBatis Generator系列(八)----MyBatis Generator定義外掛實現定義Mapper

一、建立基類 有時候會通過建立實體的基類,用來複用一些程式碼,然後讓其他的實體類整合這個類: package com.fendo.bean; /** * @Title: BaseModel.java * @Package com.fendo.bean *

mybatis generator 定義類名(修改mybatis-generator-1.3.2原始碼改dao類名)

網上找了一大堆的例子,感覺這個比較全,比較細,就是寫的比較多,如果想看詳細的,請看下面的連結,自動忽略我的: http://www.blogjava.net/bolo/archive/2015/03/20/423683.html 本篇只寫手頭只有一個eclipse的情況下(

Mybatis框架(9)---Mybatis定義外掛生成雪花ID做為表主鍵專案

Mybatis自定義外掛生成雪花ID做為主鍵專案 先附上專案專案GitHub地址 spring-boot-mybatis-interceptor 有關Mybatis雪花ID主鍵外掛前面寫了兩篇部落格作為該專案落地的鋪墊。 1、Mybatis框架---Mybatis外掛原理 2、java演算法---靜態內部類

淺析MyBatis(三):聊一聊MyBatis的實用外掛定義外掛

在前面的文章中,筆者詳細介紹了 [

mybatis-generator定義註釋生成

    最近做的專案發現沒有中文註釋,故查詢資料,特此記錄。 本文所用的是基於mybatis-generator 1.3.2版本來完成的。 mybatis-generator 自動生成的程式碼註釋是很反人類的,通常我們在使用的時候都是按照如下設定關閉註釋: &

mybatis generator 定義 ,xml 檔名稱和內容定義,dao名稱定義

最近在用mybatis generator 生成程式碼的時候,生成的xml檔案 和類檔案 不是自己想要的,於是修改mybatis generator 的原始碼,重寫方法來達到效果,這裡記錄一下,後期如果需要還可以隨便改成自己想要的! 一 修改註釋     &nb

在Ueditor 1.4.3中定義外掛

1.定義js/ueditor/myCustomize/myCustomizeLine.js UE.registerUI('customizeline',function(editor,uiName){     //建立dialog     var dialog = new

RTI_DDS定義外掛開發 1

NDDS Transport-Plugin API提供了獨立於底層物理傳輸裝置的抽象通訊模型。 NDDS的高層使用此API來發送和接收訊息。實現NDDS Transport-Plugin API的程式碼

(BUG)Kettle8.1.0.0-365註冊定義外掛BUG

浪費了“黃金五年”的Java程式設計師,還有救嗎? >>>   

vue定義外掛

官網教程 官網連結 開發外掛 外掛通常會為 Vue 新增全域性功能。外掛的範圍沒有限制——一般有下面幾種: 新增全域性方法或者屬性,如: vue-custom-element 新增全域性資源:指令/過濾器/過渡等,如 vue-touch 通過全域性 mixin 方法新增一些元件選

Cordova與現有框架的結合,Cordova外掛使用教程,Cordova定義外掛,框架整合Cordova,將Cordova整合到現有框架中

 一、框架整合cordova 將cordova整合到現有框架中 一般cordova工程是通過CMD命令來建立一個工程並新增Android、ios等平臺,這樣的建立方式可以完整的下載開發過程中所需要的的外掛。也是最方便和快捷一種方式。因此我們需要用這種方式將我們現有的框架放入到已建好的cordov

TarsGo新版本釋出,支援protobuf,zipkin和定義外掛

本文作者:陳明傑(sandyskies) Tars是騰訊從2008年到今天一直在使用的後臺邏輯層的統一應用框架,目前支援C++,Java,PHP,Nodejs,Golang語言。該框架為使用者提供了涉及到開發、運維、以及測試的一整套解決方案,幫助一個產品或者服務快速開發、部署、測試、上線。 它集可擴充套件協

SSM Mybatis二級快取深入學習——定義sql語句開啟關閉快取

原文連結: https://inx.fun/p/526.html SSM Mybatis二級快取深入學習——自定義sql語句開啟關閉快取 木來 我在我自己的SSM專案中部署了二級快取,一開始沒有察覺,但是當我不停的去進行更新與修改操作的時候,我發現二級快取沒有用,這就很難受。 於

Adams 2013定義外掛方法zz

1.Adams外掛介紹 Adams的高階模組(如Controls控制模組、Vibration振動模組、Durability耐久性模組等)是以外掛的形式整合在Adams軟體中。通過Adams提供的外掛管理器(Plugin Manager)工具能非常方便地對這些外掛進行管理,即插即用,

maven定義外掛

建立一個Maven專案,具體怎麼建立略。 將pom.xml檔案的packaging 改為maven-plugin <packaging>maven-plugin</packaging> pom.xml中引入外掛依賴 <

給Android開發者的Ionic定義外掛

首先需要把Ionic的環境搭好,這裡我就不廢話了,相信看到這篇文章的各位都已經是使用過Ionic的人了 直接上教程 1.建立外掛 通過命令列建立外掛  格式:plugman create --name <pluginName> --plugin_id &l