Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Q
quick_generator
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Lv xiang
quick_generator
Commits
9bcbcb29
Commit
9bcbcb29
authored
Jun 13, 2018
by
xxlv
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix typo
parent
932182e8
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
133 additions
and
32 deletions
+133
-32
workspace.xml
.idea/workspace.xml
+0
-0
gen.py
gen.py
+133
-32
mybatis-generator-core-1.3.6.jar
jar/mybatis-generator-core-1.3.6.jar
+0
-0
No files found.
.idea/workspace.xml
View file @
9bcbcb29
This diff is collapsed.
Click to expand it.
gen.py
View file @
9bcbcb29
...
...
@@ -4,16 +4,22 @@
import
os
import
shutil
import
argparse
import
xml.etree.ElementTree
as
ET
DIR
=
"./template"
TMP
=
"./tmp"
JAR_PATH
=
"./jar"
def
parse_ydl_project
(
path
):
# target_path
# target_pathtarget-path-intf
# target_path/target-pathr-service
# 如果满足当前的目录结构 就认为是YDL project
"""
target_path
target_pathtarget-path-intf
target_path/target-pathr-service
如果满足当前的目录结构 就认为是YDL project
:param path:
:return:
"""
name
=
os
.
path
.
realpath
(
path
)
abs_path
=
name
.
split
(
"/"
)[
0
:
-
1
]
identity
=
name
.
split
(
"/"
)[
-
1
]
...
...
@@ -22,9 +28,11 @@ def parse_ydl_project(path):
package2
=
project_prefix
.
split
(
"-"
)[
1
]
interface_path
=
"/"
.
join
(
abs_path
+
[
identity
,
project_prefix
,
"{}-intf"
.
format
(
project_prefix
)])
service_path
=
"/"
.
join
(
abs_path
+
[
identity
,
project_prefix
,
"{}-service"
.
format
(
project_prefix
)])
intf_facade_path
=
"{}/{}"
.
format
(
interface_path
,
"src/main/java/com/{}/{}/intf/facade"
.
format
(
package1
,
package2
))
intf_req_dto_path
=
"{}/{}"
.
format
(
interface_path
,
"src/main/java/com/{}/{}/intf/dto/request"
.
format
(
package1
,
package2
))
intf_resp_dto_path
=
"{}/{}"
.
format
(
interface_path
,
...
...
@@ -38,30 +46,23 @@ def parse_ydl_project(path):
service_biz_impl_path
=
"{}/{}"
.
format
(
service_path
,
"src/main/java/com/{}/{}/service/biz/impl"
.
format
(
package1
,
package2
))
service_dao_path
=
"{}/{}"
.
format
(
service_path
,
"src/main/java/com/{}/{}/service/dao"
.
format
(
package1
,
package2
))
service_sql_xml_path
=
"{}/{}"
.
format
(
service_path
,
"src/main/resources/sqlmap"
)
# print("Interface facade path is {}".format(intf_facade_path))
# print("Interface req dto path is {}".format(intf_req_dto_path))
# print("Interface resp dto path is {}".format(intf_resp_dto_path))
# print("Interface po path is {}".format(intf_po_path))
# print("Service facade impl path is {}".format(service_facade_impl_path))
# print("Service biz intf path is {}".format(service_intf_biz_path))
# print("Service biz impl path is {}".format(service_biz_impl_path))
# print("Service dao path is {}".format(service_dao_path))
# print("Service sql xml path is {}".format(service_sql_xml_path))
service_sql_mybatis_generator_config_path
=
"{}/{}"
.
format
(
service_path
,
"src/main/resources/mybatis/generatorConfig.xml"
)
d
=
dict
()
d
[
"intf_facade_path"
]
=
intf_facade_path
d
[
"intf_req_dto_path"
]
=
intf_req_dto_path
d
[
"intf_resp_dto_path"
]
=
intf_resp_dto_path
d
[
"intf_po_path"
]
=
intf_po_path
d
[
"service_intf_biz_path"
]
=
service_intf_biz_path
d
[
"service_facade_impl_path"
]
=
service_facade_impl_path
d
[
"service_biz_impl_path"
]
=
service_biz_impl_path
d
[
"service_sql_xml_path"
]
=
service_sql_xml_path
d
[
"service_dao_path"
]
=
service_dao_path
d
[
"mybatis_config_path"
]
=
service_sql_mybatis_generator_config_path
for
id
,
path
in
d
.
iteritems
():
if
(
not
os
.
path
.
exists
(
path
)):
...
...
@@ -83,7 +84,6 @@ def safe_cpfile(f, target_path_map, res_name):
print
(
"开始copy 文件{}"
.
format
(
f
))
print
(
"-------------------------------------"
)
identity
=
f
.
split
(
"/"
)[
-
1
]
categories_map
=
dict
()
categories_map
[
"{}Facade.java"
.
format
(
res_name
)]
=
"intf_facade_path"
...
...
@@ -102,7 +102,6 @@ def safe_cpfile(f, target_path_map, res_name):
print
(
"目标 {} 不存在"
.
format
(
target_path
))
exit
(
-
1
)
try
:
shutil
.
move
(
f
,
target_path
)
except
Exception
as
e
:
...
...
@@ -110,13 +109,93 @@ def safe_cpfile(f, target_path_map, res_name):
print
(
"无法移动 [{}] -_-"
.
format
(
e
.
message
))
exit
(
-
1
)
print
(
"move 当前的文件{} 到 {}"
.
format
(
f
,
target_path
))
# 编译内容
def
compile_content
(
compile_table
,
origin
,
tmp
):
def
is_po
(
res_name
,
identity
):
print
(
"检测po {} {}"
.
format
(
res_name
,
identity
.
split
(
"/"
)[
-
1
]))
return
"{}.java"
.
format
(
res_name
)
==
identity
.
split
(
"/"
)[
-
1
]
def
config_mybatis
(
res_name
,
table_name
,
mybatis_config_path
):
"""
重写mybatis generatorConfig
:param res_name:
:param table_name:
:param mybatis_config_path:
:return:
"""
print
(
"-----------------------------------------------"
)
print
(
"修改 {}"
.
format
(
mybatis_config_path
))
print
(
"-----------------------------------------------"
)
head
=
"""
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
"""
root
=
ET
.
parse
(
mybatis_config_path
)
e
=
ET
.
Element
(
"table"
,
tableName
=
table_name
,
domainObjectName
=
res_name
,
enableCountByExample
=
"false"
,
enableDeleteByExample
=
"false"
,
enableSelectByExample
=
"false"
,
enableUpdateByExample
=
"false"
,
selectByExampleQueryId
=
"false"
)
context
=
root
.
find
(
"context"
)
context
.
append
(
e
)
tmp_mybatis_path
=
os
.
path
.
join
(
TMP
,
"generatorConfig.xml"
)
root
.
write
(
tmp_mybatis_path
,
encoding
=
"utf-8"
)
return
tmp_mybatis_path
def
gen_po
(
res_name
,
project_target_path
):
"""
生成po 调用mybatis 的generator
:param res_name:
:param project_target_path:
:return:
"""
mybatis_config_path
=
project_target_path
[
'mybatis_config_path'
]
if
(
not
os
.
path
.
exists
(
mybatis_config_path
)):
print
(
"Mybatis 路径有误"
)
exit
(
-
1
)
tables_name
=
res_name
local_mybatis_config
=
config_mybatis
(
res_name
,
tables_name
,
mybatis_config_path
)
gen_po_cmd
=
"""
java -jar {}/mybatis-generator-core-1.3.6.jar -configfile {} -overwrite
"""
.
format
(
JAR_PATH
,
local_mybatis_config
)
print
(
"----------------------------------------"
)
print
(
gen_po_cmd
)
print
(
"----------------------------------------"
)
# os.system(gen_po_cmd)
return
"PO"
def
rewrite_mybatis_config
():
pass
# 编译内容
def
compile_content
(
res_name
,
compile_table
,
origin
,
tmp
,
project_target_path
):
"""
编译内容
:param res_name:
:param compile_table:
:param origin:
:param tmp:
:param project_target_path:
:return:
"""
if
not
os
.
path
.
isdir
(
tmp
):
os
.
mkdir
(
tmp
)
...
...
@@ -129,9 +208,16 @@ def compile_content(compile_table, origin, tmp):
with
open
(
identity
,
"w+"
)
as
f
:
f
.
write
(
compile
(
body
,
compile_table
))
# 检测如果当前的文件是PO的话,使用mybatis 生成po
if
is_po
(
res_name
,
identity
):
print
(
"发现po {}"
.
format
(
identity
))
with
open
(
identity
,
"w+"
)
as
f
:
f
.
write
(
gen_po
(
res_name
,
project_target_path
))
print
(
"--------------------------------"
)
print
(
"成功编译文件 {} [{}]"
.
format
(
identity
,
len
(
body
)))
print
(
"--------------------------------"
)
return
identity
...
...
@@ -143,13 +229,31 @@ def compile(body, compile_table):
return
body
# clean tmp dir
def
clean_tmp
():
"""
清空临时目录
:return:
"""
for
root
,
dirs
,
files
in
os
.
walk
(
TMP
,
False
):
for
file
in
files
:
os
.
remove
(
os
.
path
.
join
(
root
,
file
))
print
(
"清空目录 {}"
.
format
(
TMP
))
# gen
def
gen
(
res_name
,
look_path
):
"""
核心逻辑
:param res_name:
:param look_path:
:return:
"""
clean_tmp
()
res_name
=
res_name
[
0
]
.
upper
()
+
res_name
[
1
:]
print
(
"----------------------------------"
)
print
(
"你的资源名称为 {}"
.
format
(
res_name
))
print
(
"----------------------------------"
)
...
...
@@ -165,7 +269,6 @@ def gen(res_name, look_path):
compile_table
=
dict
()
compile_table
[
'${PLACE}'
]
=
"{}{}"
.
format
(
res_name
[
0
]
.
upper
(),
res_name
[
1
:])
compile_table
[
'${PLACE_VAR}'
]
=
"{}{}"
.
format
(
res_name
[
0
]
.
lower
(),
res_name
[
1
:])
print
(
"--------------------------------------"
)
print
(
"编译常量表"
)
print
(
"--------------------------------------"
)
...
...
@@ -174,21 +277,19 @@ def gen(res_name, look_path):
for
root
,
dirs
,
files
in
os
.
walk
(
DIR
,
False
):
for
file
in
files
:
if
(
file
[
0
]
==
"$"
):
compiled_file
=
compile_content
(
compile_table
,
os
.
path
.
join
(
root
,
file
),
TMP
)
safe_cpfile
(
compiled_file
,
PROJECT_TARGET_PATH
,
res_name
)
def
clean_tmp
():
for
root
,
dirs
,
files
in
os
.
walk
(
TMP
,
False
):
for
file
in
files
:
os
.
remove
(
os
.
path
.
join
(
root
,
file
))
print
(
"清空目录 {}"
.
format
(
TMP
))
compiled_file
=
compile_content
(
res_name
,
compile_table
,
os
.
path
.
join
(
root
,
file
),
TMP
,
PROJECT_TARGET_PATH
)
# safe_cpfile(compiled_file, PROJECT_TARGET_PATH, res_name)
if
__name__
==
"__main__"
:
print
(
"-------------------------"
)
print
(
"Start Building your Resource"
)
print
(
"Draw by ghost "
)
print
(
"-------------------------"
)
parser
=
argparse
.
ArgumentParser
(
description
=
"Auto create Resource for ydl java project"
)
parser
.
add_argument
(
'--verbose'
,
'-v'
,
action
=
'store_true'
,
help
=
'verbose mode'
)
parser
.
add_argument
(
"resource_name"
)
parser
.
add_argument
(
"project_path"
)
args
=
parser
.
parse_args
()
...
...
jar/mybatis-generator-core-1.3.6.jar
0 → 100644
View file @
9bcbcb29
File added
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment