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