上一篇文章Mybatis逆工程的使用主要是講了mybatis-generator-core-1.3.2.jar的使用,這一篇我要介紹的是,修改jar包代碼,實(shí)現(xiàn)生成自定義模板。
1.我們從這里可以下載mybatis-generator-core-1.3.2.jar項(xiàng)目源碼
http://maven.outofmemory.cn/org.mybatis.generator/mybatis-generator-core/1.3.2/
2.在eclipse下導(dǎo)入存在的maven項(xiàng)目,F(xiàn)ile->Import
選擇項(xiàng)目源碼位置,點(diǎn)finish完成導(dǎo)入。
項(xiàng)目目錄結(jié)構(gòu)大概這樣子。
3.下面我逆工程要生成的mapping和xml格式。
4.開始修改,首先說明一下各目錄
最底邊的tse包是我自定義的包,里面是個主類,測試生成的代碼是否達(dá)到預(yù)期標(biāo)準(zhǔn)。
由于這個架包是老外寫的,生成的代碼風(fēng)格和我們不大一一樣,如果你想修改代碼格式,建議你看一下菠蘿大象的文章,我這里就不講代碼格式了。
http://www.blogjava.net/bolo/archive/2015/03/20/423683.html
首先,我們先修改逆工程要生成的接口文件mapping的代碼,默認(rèn)情況下有增刪改查,我們講其中一個改方法update吧
比如 我要讓生成的mapping中有這樣的一個方法 void update(Map<String, Object> dataMap);
就修改org.mybatis.generator.codegen.mybatis3.javamapper.elements包下的UpdateByPrimaryKeyWithoutBLOBsMethodGenerator類,如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
/* * Copyright 2009 The Apache Software Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.mybatis.generator.codegen.mybatis3.javamapper.elements; import java.util.Set; import java.util.TreeSet; import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType; import org.mybatis.generator.api.dom.java.Interface; import org.mybatis.generator.api.dom.java.JavaVisibility; import org.mybatis.generator.api.dom.java.Method; import org.mybatis.generator.api.dom.java.Parameter; /** * * @author Jeff Butler * */ public class UpdateByPrimaryKeyWithoutBLOBsMethodGenerator extends AbstractJavaMapperMethodGenerator { public UpdateByPrimaryKeyWithoutBLOBsMethodGenerator() { super (); } @Override public void addInterfaceElements(Interface interfaze) { Set<FullyQualifiedJavaType> importedTypes = new TreeSet<FullyQualifiedJavaType>(); FullyQualifiedJavaType parameterType = new FullyQualifiedJavaType( introspectedTable.getBaseRecordType()); importedTypes.add(parameterType); //新增一個方法 Method method = new Method(); //添加方法修飾符PUBLIC method.setVisibility(JavaVisibility.PUBLIC); //設(shè)置返回值,這里我用的是自定義的void,無返回值方法 getVoidInstance() //FullyQualifiedJavaType類中可以自定義返回值方法,大家可以自己進(jìn)去添加 //不想那么麻煩的話,可以 new FullyQualifiedJavaType("void") , 構(gòu)造函數(shù)寫上返回類型就行了 method.setReturnType(FullyQualifiedJavaType.getVoidInstance()); //設(shè)置方法名,同樣可以自己進(jìn)去看 method.setName(introspectedTable.getUpdateByPrimaryKeyStatementId()); //method.addParameter(new Parameter(parameterType, "record")); //$NON-NLS-1$ FullyQualifiedJavaType mapType=FullyQualifiedJavaType.getMyMapInstance(); //方法的參數(shù),這里是Map類型的dateMap參數(shù) Parameter parameter = new Parameter(mapType, "dataMap" ); method.addParameter(parameter); context.getCommentGenerator().addGeneralMethodComment(method, introspectedTable); addMapperAnnotations(interfaze, method); if (context.getPlugins() .clientUpdateByPrimaryKeyWithoutBLOBsMethodGenerated(method, interfaze, introspectedTable)) { interfaze.addImportedTypes(importedTypes); interfaze.addMethod(method); } } public void addMapperAnnotations(Interface interfaze, Method method) { return ; } } |
大家可以根據(jù)注釋來修改。
接下來修改mapping對應(yīng)的xml中的代碼,同樣的,這里我只介紹修改update方法,相信看完你就能自己修改其它方法。
就修改org.mybatis.generator.codegen.mybatis3.xmlmapper.elements包下的UpdateByPrimaryKeyWithoutBLOBsElementGenerator類,如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
/* * Copyright 2009 The Apache Software Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.mybatis.generator.codegen.mybatis3.xmlmapper.elements; import java.util.Iterator; import java.util.List; import org.mybatis.generator.api.IntrospectedColumn; import org.mybatis.generator.api.dom.OutputUtilities; import org.mybatis.generator.api.dom.xml.Attribute; import org.mybatis.generator.api.dom.xml.TextElement; import org.mybatis.generator.api.dom.xml.XmlElement; import org.mybatis.generator.codegen.mybatis3.MyBatis3FormattingUtilities; /** * * @author Jeff Butler * */ public class UpdateByPrimaryKeyWithoutBLOBsElementGenerator extends AbstractXmlElementGenerator { //private boolean isSimple; public UpdateByPrimaryKeyWithoutBLOBsElementGenerator( boolean isSimple) { super (); //this.isSimple = isSimple; } @Override public void addElements(XmlElement parentElement) { //update標(biāo)簽(方法最外層) XmlElement answer = new XmlElement( "update" ); //$NON-NLS-1$ //update標(biāo)簽的屬性 answer.addAttribute( new Attribute( "id" , introspectedTable.getUpdateByPrimaryKeyStatementId())); //$NON-NLS-1$ answer.addAttribute( new Attribute( "parameterType" , //$NON-NLS-1$ "Map" )); //把標(biāo)簽加進(jìn)去 context.getCommentGenerator().addComment(answer); StringBuilder sb = new StringBuilder(); sb.append( "update " ); //$NON-NLS-1$ sb.append(introspectedTable.getFullyQualifiedTableNameAtRuntime()); //標(biāo)簽內(nèi)容,即文本元素 answer.addElement( new TextElement(sb.toString())); sb.setLength( 0 ); //set標(biāo)簽 XmlElement setElement = new XmlElement( "set" ); //$NON-NLS-1$ //獲取數(shù)據(jù)庫表中的所有字段 List <IntrospectedColumn> cols=introspectedTable.getAllColumns(); //迭代 java.util.Iterator<IntrospectedColumn> iter =cols.iterator(); while (iter.hasNext()) { //迭代 //迭代到某一字段 IntrospectedColumn introspectedColumn = iter.next(); //if標(biāo)簽 XmlElement ifElement = new XmlElement( "if" ); //$NON-NLS-1$ //字段名 String str=MyBatis3FormattingUtilities .getEscapedColumnName(introspectedColumn); //if標(biāo)簽添加屬性test,值為 字段 !=null and 字段!='' ifElement.addAttribute( new Attribute( "test" ,str+ " != null and " +str+ "!='' " )); //if標(biāo)簽內(nèi)容 ,文本元素,給字段賦予即將修改的值 sb.append(MyBatis3FormattingUtilities .getEscapedColumnName(introspectedColumn)); sb.append( " = " ); //$NON-NLS-1$ sb.append(MyBatis3FormattingUtilities .getParameterClause(introspectedColumn)); if (iter.hasNext()) { sb.append( ',' ); } //if標(biāo)簽添加上面的文本元素 ifElement.addElement( new TextElement(sb.toString())); if (iter.hasNext()) { sb.setLength( 0 ); OutputUtilities.xmlIndent(sb, 1 ); } setElement.addElement(ifElement); } //where元素(修改的字段前提條件) XmlElement whereElement = new XmlElement( "where" ); for (IntrospectedColumn introspectedColumn : introspectedTable .getPrimaryKeyColumns()) { //遍歷表中字段進(jìn)行判斷 sb.setLength( 0 ); sb.append(MyBatis3FormattingUtilities .getEscapedColumnName(introspectedColumn)); sb.append( " = " ); //$NON-NLS-1$ sb.append(MyBatis3FormattingUtilities .getParameterClause(introspectedColumn)); whereElement.addElement( new TextElement(sb.toString())); } //方法中最外層xml元素 update元素添加set元素和where元素 answer.addElement(setElement); answer.addElement(whereElement); if (context.getPlugins() .sqlMapUpdateByPrimaryKeyWithoutBLOBsElementGenerated(answer, introspectedTable)) { parentElement.addElement(answer); } } } |
其它方法大家可以根據(jù)這個update方法改。
如果要添加新方法的話參考下面這個帖子
http://m.blog.csdn.net/article/details?id=35985705
下面我來驗(yàn)證修改成果
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
generatorConfig.xml //先配置xml 放在src/main/resources/ 目錄下 <?xml version= "1.0" encoding= "UTF-8" ?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" > <generatorConfiguration> <!-- 引入配置文件 --> <!-- 指定數(shù)據(jù)連接驅(qū)動jar地址 --> <classPathEntry location= "E:\eclipse_workspace\testMybatis\mysql-connector-java-5.1.13-bin.jar" /> <!-- 一個數(shù)據(jù)庫一個context --> <context id= "infoGuardian" targetRuntime= "MyBatis3" > <!-- 注釋 --> <commentGenerator > <property name= "suppressAllComments" value= "true" /><!-- 是否取消注釋 --> <property name= "suppressDate" value= "true" /> <!-- 是否生成注釋代時間戳--> </commentGenerator> <!-- jdbc連接 --> <jdbcConnection driverClass= "com.mysql.jdbc.Driver" connectionURL= "jdbc:mysql://localhost:3306/login?characterEncoding=UTF-8" userId= "root" password= "root" /> <!-- 類型轉(zhuǎn)換 --> <javaTypeResolver> <!-- 是否使用bigDecimal, false 可自動轉(zhuǎn)化以下類型(Long, Integer, Short, etc.) --> <property name= "forceBigDecimals" value= "false" /> </javaTypeResolver> <!-- 生成實(shí)體類地址 --> <javaModelGenerator targetPackage= "pojo" targetProject= "mybatis3" > <!-- 是否在當(dāng)前路徑下新加一層schema,eg:fase路徑cn.ffcs.test.domain ", true:cn.ffcs.test.domain" .[schemaName] --> <property name= "enableSubPackages" value= "true" /> <!-- 是否針對string類型的字段在set的時候進(jìn)行trim調(diào)用 --> <property name= "trimStrings" value= "true" /> </javaModelGenerator> <!-- 生成mapxml文件 --> <sqlMapGenerator targetPackage= "mapper" targetProject= "mybatis3" > <!-- 是否在當(dāng)前路徑下新加一層schema,eg:fase路徑cn.ffcs.test.domain ", true:cn.ffcs.test.domain" .[schemaName] --> <property name= "enableSubPackages" value= "true" /> </sqlMapGenerator> <!-- 生成mapxml對應(yīng)client,也就是接口dao --> <javaClientGenerator type= "XMLMAPPER" targetPackage= "mapper" targetProject= "mybatis3" > <!-- 是否在當(dāng)前路徑下新加一層schema,eg:fase路徑cn.ffcs.test.domain ", true:cn.ffcs.test.domain" .[schemaName] --> <property name= "enableSubPackages" value= "true" /> </javaClientGenerator> <!-- 配置表信息,這里沒生成一張表,這里需要改變一次對應(yīng)表名 --> <table tableName= "login" domainObjectName= "Login" enableCountByExample= "false" enableDeleteByExample= "false" enableSelectByExample= "false" enableUpdateByExample= "false" > </table> </context> </generatorConfiguration> |
StartUp.java//驗(yàn)證的主程序
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
package tse; import static org.junit.Assert.assertEquals; import java.io.File; import java.util.ArrayList; import java.util.List; import org.mybatis.generator.api.MyBatisGenerator; import org.mybatis.generator.config.Configuration; import org.mybatis.generator.config.xml.ConfigurationParser; import org.mybatis.generator.internal.DefaultShellCallback; public class StartUp { public static void main(String []args) throws Exception{ List<String> warnings = new ArrayList<String>(); File configFile= new File(StartUp. class .getResource( "/generatorConfig.xml" ).toURI()); ConfigurationParser cp = new ConfigurationParser(warnings); Configuration config = cp.parseConfiguration(configFile); DefaultShellCallback shellCallback = new DefaultShellCallback( true ); MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, shellCallback, warnings); myBatisGenerator.generate( null ); System.out.println(warnings); } } |
好了,運(yùn)行StartUp.java
就根據(jù)generatorConfig.xml的配置在目標(biāo)目錄生成對應(yīng)文件。
OK,和我預(yù)期結(jié)果一樣。
5.上面修改完了,我們開始打包。
由于是個maven項(xiàng)目,我用的是maven3.3.9,大家也可以用eclipse內(nèi)置的maven,反正我是不喜歡。
下面是我maven項(xiàng)目的pom.xml文件代碼
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
|
<?xml version= "1.0" encoding= "UTF-8" ?> <!-- Copyright 2009 - 2011 The MyBatis Team Licensed under the Apache License, Version 2.0 (the "License" ); you may not use this file except in compliance with the License. You may obtain a copy of the License at http: //www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <!-- version: $Id: pom.xml 4114 2011 - 11 - 27 19 : 03 :32Z simone.tripodi $ --> <project xmlns= "http://maven.apache.org/POM/4.0.0" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation= "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd" > <modelVersion> 4.0 . 0 </modelVersion> <parent> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator</artifactId> <version> 1.3 . 2 </version> </parent> <artifactId>mybatis-generator-core</artifactId> <packaging>jar</packaging> <name>MyBatis Generator Core</name> <build> <!-- this build creates and installs an instrumented JAR file for use by the systests projects - so we can gather consolidated coverage information --> <plugins> <!-- <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-site-plugin</artifactId> <executions> <execution> <phase>prepare- package </phase> <goals> <goal>site</goal> </goals> </execution> </executions> </plugin> --> <!-- <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <executions> <execution> <phase>prepare- package </phase> <goals> <goal>jar-no-fork</goal> </goals> </execution> </executions> </plugin> --> <!-- <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version> 2.2 . 1 </version> <executions> <execution> <id>attach-sources</id> <goals> <goal>jar</goal> </goals> <configuration> <includes> <include>**/org /**</include> </includes> </configuration> </execution> </executions> </plugin> --> <!-- <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <executions> <execution> <phase>prepare-package</phase> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>cobertura-maven-plugin</artifactId> <executions> <execution> <id>cobertura-instrument</id> <phase>pre-integration-test</phase> <goals> <goal>instrument</goal> </goals> </execution> </executions> </plugin> <!-- <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifest> <mainClass>org.mybatis.generator.api.ShellRunner</mainClass> </manifest> </archive> </configuration> <executions> <execution> <id>cobertura-jar</id> <phase>integration-test</phase> <goals> <goal>jar</goal> </goals> <configuration> <classifier>cobertura</classifier> <classesDirectory>${basedir}/target/generated-classes/cobertura</classesDirectory> </configuration> </execution> </executions> </plugin> --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.4</version> <executions> <execution> <id>attach-jar</id> <phase>integration-test</phase> <goals> <goal>jar</goal> </goals> </execution> </executions> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <classpathPrefix></classpathPrefix> <mainClass>org.mybatis.generator.api.ShellRunner</mainClass> </manifest> </archive> <includes> <include>**/ org/**</include> </includes> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-install-plugin</artifactId> <executions> <execution> <id>cobertura-install</id> <phase>integration-test</phase> <goals> <goal>install</goal> </goals> <configuration> <classifier>cobertura</classifier> </configuration> </execution> </executions> </plugin> <!-- <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <configuration> <descriptors> <descriptor>${basedir}/src/main/assembly/src.xml</descriptor> </descriptors> </configuration> <executions> <execution> <id>bundle</id> <goals> <goal>single</goal> </goals> <phase> package </phase> </execution> </executions> </plugin> --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <configuration> <appendAssemblyId> false </appendAssemblyId> <descriptors> <descriptor>${basedir}/src/main/assembly/src.xml</descriptor> </descriptors> </configuration> <executions> <execution> <id>make-assembly</id> <phase> package </phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>com.googlecode.maven-gcu-plugin</groupId> <artifactId>maven-gcu-plugin</artifactId> <executions> <execution> <phase>deploy</phase> <goals> <goal>upload</goal> </goals> <configuration> <uploads> <upload> <file>${project.build.directory}/${project.artifactId}-${project.version}-bundle.zip</file> <summary>MyBatis Generator ${project.version}</summary> <labels> <label>Featured</label> <label>Type-Archive</label> <label>Product-Generator</label> <label>Version-${project.version}</label> </labels> </upload> </uploads> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-release-plugin</artifactId> <configuration> <arguments>-Prelease,gupload</arguments> </configuration> </plugin> </plugins> </build> <reporting> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>jdepend-maven-plugin</artifactId> <version> 2.0 -beta- 2 </version> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>cobertura-maven-plugin</artifactId> </plugin> </plugins> </reporting> <dependencies> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.ant</groupId> <artifactId>ant</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.hsqldb</groupId> <artifactId>hsqldb</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version> 2.12 </version> </dependency> </dependencies> <scm> <url>https: //mybatis.googlecode.com/svn/sub-projects/generator/tags/mybatis-generator-1.3.2/mybatis-generator-core</url> <connection>scm:svn:https: //mybatis.googlecode.com/svn/sub-projects/generator/tags/mybatis-generator-1.3.2/mybatis-generator-core</connection> <developerConnection>scm:svn:https: //mybatis.googlecode.com/svn/sub-projects/generator/tags/mybatis-generator-1.3.2/mybatis-generator-core</developerConnection> </scm> </project> |
然后是修改src/main/assembly/src.xml代碼
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
<assembly xmlns= "http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation= "http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd" > <id>bundle</id> <formats> <format>zip</format> </formats> <fileSets> <fileSet> <directory>src/main/resources</directory> <outputDirectory>/</outputDirectory> <includes> <include>generatorConfig.xml</include> </includes> <excludes> <exclude>log4j.properties</exclude> <exclude>src.xml</exclude> </excludes> </fileSet> <fileSet> <directory>src/main/scripts</directory> <outputDirectory>/</outputDirectory> <includes> <include>run.bat</include> </includes> </fileSet> <fileSet> <directory>${project.build.directory}</directory> <outputDirectory>/</outputDirectory> <includes> <include>${project.artifactId}-${project.version}.jar</include> </includes> </fileSet> <fileSet> <directory>${project.build.directory}</directory> <outputDirectory>/</outputDirectory> <includes> <include>${project.artifactId}-${project.version}-sources.jar</include> </includes> </fileSet> </fileSets> </assembly> |
接下來,在src/main/ 下面新建scripts文件夾,在scripts文件夾新建txt文本文檔,輸入以下代碼
java -jar mybatis-generator-1.3.2.jar -configfile generatorConfig.xml –overwrite
pause
改文件名為run.bat
至此,打包配置完畢。
大家可以在項(xiàng)目下右鍵Run as->maven build 在goal里輸入package。或者命令行cmd中 進(jìn)入項(xiàng)目的目錄,運(yùn)行mvn package,這里第一次運(yùn)行會等待很久,因?yàn)閙aven會下載依賴的jar包,請耐心等待。
打包完畢,就會在項(xiàng)目根目錄下的target目錄生成如下結(jié)構(gòu)
從上圖中我們可以看到mybatis-generator-core-1.3.2.jar包已經(jīng)生成。接下來我們可以用它加上generatorConfig.xml來生成自己想要的代碼。
如果修改代碼過程中有什么不懂的,請多看源代碼。
OK,曬下成果圖
本文就講到這里!
以上所述是小編給大家介紹的Mybatis逆工程jar包的修改和打包的相關(guān)知識,希望對大家有所幫助!