Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
discovery
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
谢捷峰
discovery
Commits
542f9afd
Commit
542f9afd
authored
Jul 22, 2018
by
Nepxion
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加图形化灰度发布功能
parent
ed244ec3
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
51 additions
and
9 deletions
+51
-9
discovery-console-desktop/src/main/java/com/nepxion/discovery/console/desktop/workspace/ServiceTopology.java
+38
-6
discovery-console-desktop/src/main/java/com/nepxion/discovery/console/desktop/workspace/topology/AbstractTopology.java
+3
-3
discovery-console-desktop/src/main/resources/com/nepxion/discovery/console/desktop/locale/Locale.properties
+5
-0
discovery-console-desktop/src/main/resources/com/nepxion/discovery/console/desktop/locale/Locale_zh_CN.properties
+5
-0
No files found.
discovery-console-desktop/src/main/java/com/nepxion/discovery/console/desktop/workspace/ServiceTopology.java
View file @
542f9afd
...
@@ -29,6 +29,7 @@ import java.util.Set;
...
@@ -29,6 +29,7 @@ import java.util.Set;
import
javax.swing.BorderFactory
;
import
javax.swing.BorderFactory
;
import
javax.swing.Box
;
import
javax.swing.Box
;
import
javax.swing.BoxLayout
;
import
javax.swing.BoxLayout
;
import
javax.swing.ButtonGroup
;
import
javax.swing.DefaultComboBoxModel
;
import
javax.swing.DefaultComboBoxModel
;
import
javax.swing.JLabel
;
import
javax.swing.JLabel
;
import
javax.swing.JPanel
;
import
javax.swing.JPanel
;
...
@@ -58,6 +59,7 @@ import com.nepxion.discovery.console.desktop.workspace.topology.TopologyEntityTy
...
@@ -58,6 +59,7 @@ import com.nepxion.discovery.console.desktop.workspace.topology.TopologyEntityTy
import
com.nepxion.swing.action.JSecurityAction
;
import
com.nepxion.swing.action.JSecurityAction
;
import
com.nepxion.swing.button.ButtonManager
;
import
com.nepxion.swing.button.ButtonManager
;
import
com.nepxion.swing.button.JClassicButton
;
import
com.nepxion.swing.button.JClassicButton
;
import
com.nepxion.swing.button.JClassicMenuButton
;
import
com.nepxion.swing.combobox.JBasicComboBox
;
import
com.nepxion.swing.combobox.JBasicComboBox
;
import
com.nepxion.swing.dialog.JExceptionDialog
;
import
com.nepxion.swing.dialog.JExceptionDialog
;
import
com.nepxion.swing.dialog.JOptionDialog
;
import
com.nepxion.swing.dialog.JOptionDialog
;
...
@@ -68,6 +70,7 @@ import com.nepxion.swing.layout.filed.FiledLayout;
...
@@ -68,6 +70,7 @@ import com.nepxion.swing.layout.filed.FiledLayout;
import
com.nepxion.swing.layout.table.TableLayout
;
import
com.nepxion.swing.layout.table.TableLayout
;
import
com.nepxion.swing.locale.SwingLocale
;
import
com.nepxion.swing.locale.SwingLocale
;
import
com.nepxion.swing.menuitem.JBasicMenuItem
;
import
com.nepxion.swing.menuitem.JBasicMenuItem
;
import
com.nepxion.swing.menuitem.JBasicRadioButtonMenuItem
;
import
com.nepxion.swing.optionpane.JBasicOptionPane
;
import
com.nepxion.swing.optionpane.JBasicOptionPane
;
import
com.nepxion.swing.popupmenu.JBasicPopupMenu
;
import
com.nepxion.swing.popupmenu.JBasicPopupMenu
;
import
com.nepxion.swing.scrollpane.JBasicScrollPane
;
import
com.nepxion.swing.scrollpane.JBasicScrollPane
;
...
@@ -138,6 +141,17 @@ public class ServiceTopology extends AbstractTopology {
...
@@ -138,6 +141,17 @@ public class ServiceTopology extends AbstractTopology {
}
}
private
void
initializeToolBar
()
{
private
void
initializeToolBar
()
{
JBasicRadioButtonMenuItem
ruleToConfigCenterRadioButtonMenuItem
=
new
JBasicRadioButtonMenuItem
(
ConsoleLocale
.
getString
(
"rule_control_mode_to_config_center"
),
ConsoleLocale
.
getString
(
"rule_control_mode_to_config_center"
),
true
);
JBasicRadioButtonMenuItem
ruleToServiceRadioButtonMenuItem
=
new
JBasicRadioButtonMenuItem
(
ConsoleLocale
.
getString
(
"rule_control_mode_to_service"
),
ConsoleLocale
.
getString
(
"rule_control_mode_to_service"
));
ButtonGroup
buttonGroup
=
new
ButtonGroup
();
buttonGroup
.
add
(
ruleToConfigCenterRadioButtonMenuItem
);
buttonGroup
.
add
(
ruleToServiceRadioButtonMenuItem
);
JBasicPopupMenu
ruleControlPopupMenu
=
new
JBasicPopupMenu
();
ruleControlPopupMenu
.
add
(
ruleToConfigCenterRadioButtonMenuItem
);
ruleControlPopupMenu
.
add
(
ruleToServiceRadioButtonMenuItem
);
JClassicMenuButton
ruleControllMenubutton
=
new
JClassicMenuButton
(
ConsoleLocale
.
getString
(
"rule_control_mode"
),
ConsoleIconFactory
.
getSwingIcon
(
"component/advanced_16.png"
),
ConsoleLocale
.
getString
(
"rule_control_mode"
));
ruleControllMenubutton
.
setPopupMenu
(
ruleControlPopupMenu
);
JToolBar
toolBar
=
getGraph
().
getToolbar
();
JToolBar
toolBar
=
getGraph
().
getToolbar
();
toolBar
.
addSeparator
();
toolBar
.
addSeparator
();
toolBar
.
add
(
Box
.
createHorizontalStrut
(
5
));
toolBar
.
add
(
Box
.
createHorizontalStrut
(
5
));
...
@@ -146,6 +160,7 @@ public class ServiceTopology extends AbstractTopology {
...
@@ -146,6 +160,7 @@ public class ServiceTopology extends AbstractTopology {
toolBar
.
add
(
new
JClassicButton
(
createExecuteGrayReleaseAction
()));
toolBar
.
add
(
new
JClassicButton
(
createExecuteGrayReleaseAction
()));
toolBar
.
add
(
new
JClassicButton
(
createExecuteGrayRouterAction
()));
toolBar
.
add
(
new
JClassicButton
(
createExecuteGrayRouterAction
()));
toolBar
.
add
(
new
JClassicButton
(
createRefreshGrayStateAction
()));
toolBar
.
add
(
new
JClassicButton
(
createRefreshGrayStateAction
()));
toolBar
.
add
(
ruleControllMenubutton
);
toolBar
.
addSeparator
();
toolBar
.
addSeparator
();
toolBar
.
add
(
createConfigButton
(
true
));
toolBar
.
add
(
createConfigButton
(
true
));
...
@@ -679,7 +694,10 @@ public class ServiceTopology extends AbstractTopology {
...
@@ -679,7 +694,10 @@ public class ServiceTopology extends AbstractTopology {
private
JClassicButton
clearVersionButton
;
private
JClassicButton
clearVersionButton
;
private
JBasicTextArea
dynamicRuleTextArea
;
private
JBasicTextArea
dynamicRuleTextArea
;
private
JPanel
dynamicRulePanel
;
private
JBasicTextArea
localRuleTextArea
;
private
JBasicTextArea
localRuleTextArea
;
private
JPanel
localRulePanel
;
private
JLabel
ruleInfoLabel
;
private
JBasicTabbedPane
ruleTabbedPane
;
private
JBasicTabbedPane
ruleTabbedPane
;
private
JClassicButton
updateRuleButton
;
private
JClassicButton
updateRuleButton
;
private
JClassicButton
clearRuleButton
;
private
JClassicButton
clearRuleButton
;
...
@@ -740,13 +758,21 @@ public class ServiceTopology extends AbstractTopology {
...
@@ -740,13 +758,21 @@ public class ServiceTopology extends AbstractTopology {
private
JPanel
createRulePanel
()
{
private
JPanel
createRulePanel
()
{
dynamicRuleTextArea
=
new
JBasicTextArea
();
dynamicRuleTextArea
=
new
JBasicTextArea
();
dynamicRulePanel
=
new
JPanel
();
dynamicRulePanel
.
setBorder
(
BorderFactory
.
createEmptyBorder
(
5
,
0
,
5
,
0
));
dynamicRulePanel
.
setLayout
(
new
BorderLayout
());
dynamicRulePanel
.
add
(
new
JBasicScrollPane
(
dynamicRuleTextArea
),
BorderLayout
.
CENTER
);
localRuleTextArea
=
new
JBasicTextArea
();
localRuleTextArea
=
new
JBasicTextArea
();
localRuleTextArea
.
setEditable
(
false
);
localRuleTextArea
.
setEditable
(
false
);
localRulePanel
=
new
JPanel
();
localRulePanel
.
setBorder
(
BorderFactory
.
createEmptyBorder
(
5
,
0
,
5
,
0
));
localRulePanel
.
setLayout
(
new
BorderLayout
());
localRulePanel
.
add
(
new
JBasicScrollPane
(
localRuleTextArea
),
BorderLayout
.
CENTER
);
ruleTabbedPane
=
new
JBasicTabbedPane
();
ruleTabbedPane
=
new
JBasicTabbedPane
();
ruleTabbedPane
.
addTab
(
ConsoleLocale
.
getString
(
"label_dynamic_rule"
),
new
JBasicScrollPane
(
dynamicRuleTextArea
)
,
ConsoleLocale
.
getString
(
"label_dynamic_rule"
));
ruleTabbedPane
.
addTab
(
ConsoleLocale
.
getString
(
"label_dynamic_rule"
),
dynamicRulePanel
,
ConsoleLocale
.
getString
(
"label_dynamic_rule"
));
ruleTabbedPane
.
addTab
(
ConsoleLocale
.
getString
(
"label_local_rule"
),
new
JBasicScrollPane
(
localRuleTextArea
)
,
ConsoleLocale
.
getString
(
"label_local_rule"
));
ruleTabbedPane
.
addTab
(
ConsoleLocale
.
getString
(
"label_local_rule"
),
localRulePanel
,
ConsoleLocale
.
getString
(
"label_local_rule"
));
updateRuleButton
=
new
JClassicButton
(
createUpdateRuleAction
());
updateRuleButton
=
new
JClassicButton
(
createUpdateRuleAction
());
updateRuleButton
.
setPreferredSize
(
new
Dimension
(
updateRuleButton
.
getPreferredSize
().
width
,
30
));
updateRuleButton
.
setPreferredSize
(
new
Dimension
(
updateRuleButton
.
getPreferredSize
().
width
,
30
));
...
@@ -760,11 +786,17 @@ public class ServiceTopology extends AbstractTopology {
...
@@ -760,11 +786,17 @@ public class ServiceTopology extends AbstractTopology {
toolBar
.
add
(
clearRuleButton
);
toolBar
.
add
(
clearRuleButton
);
ButtonManager
.
updateUI
(
toolBar
);
ButtonManager
.
updateUI
(
toolBar
);
ruleInfoLabel
=
new
JLabel
(
ConsoleLocale
.
getString
(
"description_gray_rule_to_config_center"
),
IconFactory
.
getSwingIcon
(
"question_message.png"
),
SwingConstants
.
LEADING
);
JPanel
layoutPanel
=
new
JPanel
();
layoutPanel
.
setLayout
(
new
FiledLayout
(
FiledLayout
.
COLUMN
,
FiledLayout
.
FULL
,
5
));
layoutPanel
.
add
(
ruleInfoLabel
);
layoutPanel
.
add
(
toolBar
);
JPanel
panel
=
new
JPanel
();
JPanel
panel
=
new
JPanel
();
panel
.
setBorder
(
UIFactory
.
createTitledBorder
(
ConsoleLocale
.
getString
(
"title_gray_rule_operation"
)));
panel
.
setBorder
(
UIFactory
.
createTitledBorder
(
ConsoleLocale
.
getString
(
"title_gray_rule_operation"
)));
panel
.
setLayout
(
new
BorderLayout
());
panel
.
setLayout
(
new
BorderLayout
());
panel
.
add
(
ruleTabbedPane
,
BorderLayout
.
CENTER
);
panel
.
add
(
ruleTabbedPane
,
BorderLayout
.
CENTER
);
panel
.
add
(
toolBar
,
BorderLayout
.
SOUTH
);
panel
.
add
(
layoutPanel
,
BorderLayout
.
SOUTH
);
return
panel
;
return
panel
;
}
}
...
@@ -791,10 +823,10 @@ public class ServiceTopology extends AbstractTopology {
...
@@ -791,10 +823,10 @@ public class ServiceTopology extends AbstractTopology {
}
}
if
(
versionTabbedPane
.
getTabCount
()
==
2
)
{
if
(
versionTabbedPane
.
getTabCount
()
==
2
)
{
versionTabbedPane
.
remove
(
1
);
versionTabbedPane
.
remove
(
localVersionPanel
);
}
}
if
(
ruleTabbedPane
.
getTabCount
()
==
2
)
{
if
(
ruleTabbedPane
.
getTabCount
()
==
2
)
{
ruleTabbedPane
.
remove
(
1
);
ruleTabbedPane
.
remove
(
localRulePanel
);
}
}
dynamicVersionTextField
.
setText
(
""
);
dynamicVersionTextField
.
setText
(
""
);
...
@@ -824,7 +856,7 @@ public class ServiceTopology extends AbstractTopology {
...
@@ -824,7 +856,7 @@ public class ServiceTopology extends AbstractTopology {
versionTabbedPane
.
addTab
(
ConsoleLocale
.
getString
(
"label_local_version"
),
localVersionPanel
,
ConsoleLocale
.
getString
(
"label_local_version"
));
versionTabbedPane
.
addTab
(
ConsoleLocale
.
getString
(
"label_local_version"
),
localVersionPanel
,
ConsoleLocale
.
getString
(
"label_local_version"
));
}
}
if
(
ruleTabbedPane
.
getTabCount
()
==
1
)
{
if
(
ruleTabbedPane
.
getTabCount
()
==
1
)
{
ruleTabbedPane
.
addTab
(
ConsoleLocale
.
getString
(
"label_local_rule"
),
new
JBasicScrollPane
(
localRuleTextArea
)
,
ConsoleLocale
.
getString
(
"label_local_rule"
));
ruleTabbedPane
.
addTab
(
ConsoleLocale
.
getString
(
"label_local_rule"
),
localRulePanel
,
ConsoleLocale
.
getString
(
"label_local_rule"
));
}
}
dynamicVersionTextField
.
setText
(
instance
.
getDynamicVersion
());
dynamicVersionTextField
.
setText
(
instance
.
getDynamicVersion
());
...
...
discovery-console-desktop/src/main/java/com/nepxion/discovery/console/desktop/workspace/topology/AbstractTopology.java
View file @
542f9afd
...
@@ -177,10 +177,10 @@ public abstract class AbstractTopology extends JPanel {
...
@@ -177,10 +177,10 @@ public abstract class AbstractTopology extends JPanel {
popupMenu
.
add
(
linkAutoHideRadioButtonMenuItem
);
popupMenu
.
add
(
linkAutoHideRadioButtonMenuItem
);
}
}
JClassicMenuButton
b
utton
=
new
JClassicMenuButton
(
SwingLocale
.
getString
(
"setting"
),
ConsoleIconFactory
.
getSwingIcon
(
"property.png"
),
SwingLocale
.
getString
(
"setting"
));
JClassicMenuButton
menuB
utton
=
new
JClassicMenuButton
(
SwingLocale
.
getString
(
"setting"
),
ConsoleIconFactory
.
getSwingIcon
(
"property.png"
),
SwingLocale
.
getString
(
"setting"
));
b
utton
.
setPopupMenu
(
popupMenu
);
menuB
utton
.
setPopupMenu
(
popupMenu
);
return
b
utton
;
return
menuB
utton
;
}
}
private
JSecurityAction
createShowLayoutAction
()
{
private
JSecurityAction
createShowLayoutAction
()
{
...
...
discovery-console-desktop/src/main/resources/com/nepxion/discovery/console/desktop/locale/Locale.properties
View file @
542f9afd
...
@@ -9,6 +9,9 @@ show_topology=显示服务拓扑
...
@@ -9,6 +9,9 @@ show_topology=显示服务拓扑
execute_gray_release
=
执行灰度发布
execute_gray_release
=
执行灰度发布
execute_gray_router
=
执行灰度路由
execute_gray_router
=
执行灰度路由
refresh_gray_state
=
刷新灰度状态
refresh_gray_state
=
刷新灰度状态
rule_control_mode
=
规则推送模式
rule_control_mode_to_config_center
=
推送到远程配置中心
rule_control_mode_to_service
=
推送到服务
title_service_cluster_gray_release
=
服务集群灰度发布
title_service_cluster_gray_release
=
服务集群灰度发布
service_cluster_filter
=
服务集群过滤
service_cluster_filter
=
服务集群过滤
...
@@ -34,6 +37,8 @@ button_batch_update_version=批量更新灰度版本
...
@@ -34,6 +37,8 @@ button_batch_update_version=批量更新灰度版本
button_batch_clear_version
=
批量清除灰度版本
button_batch_clear_version
=
批量清除灰度版本
button_update_rule
=
更新灰度规则
button_update_rule
=
更新灰度规则
button_clear_rule
=
清除灰度规则
button_clear_rule
=
清除灰度规则
description_gray_rule_to_config_center
=
灰度规则,输入的格式为XML。目前采用的推送模式是 [推送到远程配置中心],只支持批量服务推送,不支持单个服务推送
description_gray_rule_to_service
=
灰度规则,输入的格式为XML。目前采用的推送模式是 [推送到服务]
button_batch_update_rule
=
批量更新灰度规则
button_batch_update_rule
=
批量更新灰度规则
button_batch_clear_rule
=
批量清除灰度规则
button_batch_clear_rule
=
批量清除灰度规则
description_gray_version
=
灰度版本,输入的格式为[dynamicVersion]或者[dynamicVersion];[localVersion],例如1.1或者1.1;1.0,前者直接更新灰度版本为1.1,后者只是把满足初始版本为1.0条件的服务更新灰度版本为1.1
description_gray_version
=
灰度版本,输入的格式为[dynamicVersion]或者[dynamicVersion];[localVersion],例如1.1或者1.1;1.0,前者直接更新灰度版本为1.1,后者只是把满足初始版本为1.0条件的服务更新灰度版本为1.1
...
...
discovery-console-desktop/src/main/resources/com/nepxion/discovery/console/desktop/locale/Locale_zh_CN.properties
View file @
542f9afd
...
@@ -9,6 +9,9 @@ show_topology=\u663e\u793a\u670d\u52a1\u62d3\u6251
...
@@ -9,6 +9,9 @@ show_topology=\u663e\u793a\u670d\u52a1\u62d3\u6251
execute_gray_release
=
\u6267\u
884c
\u7070\u
5ea6
\u
53d1
\u
5e03
execute_gray_release
=
\u6267\u
884c
\u7070\u
5ea6
\u
53d1
\u
5e03
execute_gray_router
=
\u6267\u
884c
\u7070\u
5ea6
\u
8def
\u7531
execute_gray_router
=
\u6267\u
884c
\u7070\u
5ea6
\u
8def
\u7531
refresh_gray_state
=
\u5237\u
65b0
\u7070\u
5ea6
\u
72b6
\u6001
refresh_gray_state
=
\u5237\u
65b0
\u7070\u
5ea6
\u
72b6
\u6001
rule_control_mode
=
\u
89c4
\u5219\u
63a8
\u9001\u
6a21
\u
5f0f
rule_control_mode_to_config_center
=
\u
63a8
\u9001\u5230\u
8fdc
\u
7a0b
\u
914d
\u
7f6e
\u
4e2d
\u
5fc3
rule_control_mode_to_service
=
\u
63a8
\u9001\u5230\u
670d
\u
52a1
title_service_cluster_gray_release
=
\u
670d
\u
52a1
\u
96c6
\u
7fa4
\u7070\u
5ea6
\u
53d1
\u
5e03
title_service_cluster_gray_release
=
\u
670d
\u
52a1
\u
96c6
\u
7fa4
\u7070\u
5ea6
\u
53d1
\u
5e03
service_cluster_filter
=
\u
670d
\u
52a1
\u
96c6
\u
7fa4
\u
8fc7
\u
6ee4
service_cluster_filter
=
\u
670d
\u
52a1
\u
96c6
\u
7fa4
\u
8fc7
\u
6ee4
...
@@ -34,6 +37,8 @@ button_batch_update_version=\u6279\u91cf\u66f4\u65b0\u7070\u5ea6\u7248\u672c
...
@@ -34,6 +37,8 @@ button_batch_update_version=\u6279\u91cf\u66f4\u65b0\u7070\u5ea6\u7248\u672c
button_batch_clear_version
=
\u6279\u
91cf
\u
6e05
\u9664\u7070\u
5ea6
\u7248\u
672c
button_batch_clear_version
=
\u6279\u
91cf
\u
6e05
\u9664\u7070\u
5ea6
\u7248\u
672c
button_update_rule
=
\u
66f4
\u
65b0
\u7070\u
5ea6
\u
89c4
\u5219
button_update_rule
=
\u
66f4
\u
65b0
\u7070\u
5ea6
\u
89c4
\u5219
button_clear_rule
=
\u
6e05
\u9664\u7070\u
5ea6
\u
89c4
\u5219
button_clear_rule
=
\u
6e05
\u9664\u7070\u
5ea6
\u
89c4
\u5219
description_gray_rule_to_config_center
=
\u7070\u
5ea6
\u
89c4
\u5219\u
ff0c
\u
8f93
\u5165\u7684\u
683c
\u
5f0f
\u
4e3aXML
\u3002\u
76ee
\u
524d
\u
91c7
\u7528\u7684\u
63a8
\u9001\u
6a21
\u
5f0f
\u
662f [
\u
63a8
\u9001\u5230\u
8fdc
\u
7a0b
\u
914d
\u
7f6e
\u
4e2d
\u
5fc3]
\u
ff0c
\u
53ea
\u
652f
\u6301\u6279\u
91cf
\u
670d
\u
52a1
\u
63a8
\u9001\u
ff0c
\u
4e0d
\u
652f
\u6301\u5355\u
4e2a
\u
670d
\u
52a1
\u
63a8
\u9001
description_gray_rule_to_service
=
\u7070\u
5ea6
\u
89c4
\u5219\u
ff0c
\u
8f93
\u5165\u7684\u
683c
\u
5f0f
\u
4e3aXML
\u3002\u
76ee
\u
524d
\u
91c7
\u7528\u7684\u
63a8
\u9001\u
6a21
\u
5f0f
\u
662f [
\u
63a8
\u9001\u5230\u
670d
\u
52a1]
button_batch_update_rule
=
\u6279\u
91cf
\u
66f4
\u
65b0
\u7070\u
5ea6
\u
89c4
\u5219
button_batch_update_rule
=
\u6279\u
91cf
\u
66f4
\u
65b0
\u7070\u
5ea6
\u
89c4
\u5219
button_batch_clear_rule
=
\u6279\u
91cf
\u
6e05
\u9664\u7070\u
5ea6
\u
89c4
\u5219
button_batch_clear_rule
=
\u6279\u
91cf
\u
6e05
\u9664\u7070\u
5ea6
\u
89c4
\u5219
description_gray_version
=
\u7070\u
5ea6
\u7248\u
672c
\u
ff0c
\u
8f93
\u5165\u7684\u
683c
\u
5f0f
\u
4e3a[dynamicVersion]
\u6216\u8005
[dynamicVersion];[localVersion]
\u
ff0c
\u
4f8b
\u5982
1.1
\u6216\u8005
1.1;1.0
\u
ff0c
\u
524d
\u8005\u
76f4
\u
63a5
\u
66f4
\u
65b0
\u7070\u
5ea6
\u7248\u
672c
\u
4e3a1.1
\u
ff0c
\u
540e
\u8005\u
53ea
\u
662f
\u
628a
\u
6ee1
\u
8db3
\u
521d
\u
59cb
\u7248\u
672c
\u
4e3a1.0
\u6761\u
4ef6
\u7684\u
670d
\u
52a1
\u
66f4
\u
65b0
\u7070\u
5ea6
\u7248\u
672c
\u
4e3a1.1
description_gray_version
=
\u7070\u
5ea6
\u7248\u
672c
\u
ff0c
\u
8f93
\u5165\u7684\u
683c
\u
5f0f
\u
4e3a[dynamicVersion]
\u6216\u8005
[dynamicVersion];[localVersion]
\u
ff0c
\u
4f8b
\u5982
1.1
\u6216\u8005
1.1;1.0
\u
ff0c
\u
524d
\u8005\u
76f4
\u
63a5
\u
66f4
\u
65b0
\u7070\u
5ea6
\u7248\u
672c
\u
4e3a1.1
\u
ff0c
\u
540e
\u8005\u
53ea
\u
662f
\u
628a
\u
6ee1
\u
8db3
\u
521d
\u
59cb
\u7248\u
672c
\u
4e3a1.0
\u6761\u
4ef6
\u7684\u
670d
\u
52a1
\u
66f4
\u
65b0
\u7070\u
5ea6
\u7248\u
672c
\u
4e3a1.1
...
...
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