- 2018-11-22,记录第一次配置SVN同步遇到的小问题
奔跑的程序
今天是第一次到公司上班,因为公司的的协同工作是使用SVN进行的,而且之前因为没有做备份服务器,所以正好今天我入职,老板直接就给我安排了这个任务,因为之前没有做过这个,所以在完成备份的时候遇到了挺多问题,可能也会有跟我遇到相同问题的人,所以特地在上记载一下自己使用SVN配置备份服务器的过程。使用SVN配置备份有三种方式,今天我就介绍我使用的一种当时:使用svnsync进行备份需求:将远端服务器的SV
- SVN仓库自动备份方法
宅男9号
目标使用SVN进行版本管理时,有时会遇到意外情况导致版本库丢失造成巨大损失。比如硬盘坏了什么的。因此,需要将SVN仓库备份到其他机器。SVN备份的方式很多。手动备份工作量很大,定时备份比较轻松也比较简单,但是感觉不太智能。我们要有追求,实现SVN仓库自动同步到备份仓库。方法实现方法分为两步:搭建SVN备份仓库,并使用svnsync工具同步SVN仓库。在SVN仓库中设置post-commit钩子,自
- SVN服务器备份
剑雪封喉r
个人心得服务器svn运维
目录前言1hotcopy备份1.1方法说明1.2手动备份1.3自动备份1.3.1备份脚本1.3.2定时任务1.4还原方法1.4.1VisualSVN还原1.4.2SubVersion还原1.5异常提示2dump备份2.1方法说明2.2手动备份2.3自动备份2.3.1备份脚本2.3.2定时任务2.4还原方法2.5异常提示3svnsync同步3.1方法说明3.2备份方法3.2.1SVN服务器安装3.2
- svn服务用svnsync命令双机热备
yaoyaodexiaozhu
源目录:svn://srcIP/taobaotop目标目录:svn://desIP/taobaotop步骤:如果目标目录存在相同的项目,请先清除,重新建立空项目,比如:mkdir-p/data/svndata/taobaotopsvnadmincreate/data/svndata/taobaotop2.在从机上执行:cd/data/svndata/taobaotop/hookscppre-rev
- Subversion版本库同步工具:svnsync
谦杯
linux操作
Subversion版本库同步工具:svnsyncsvnsync是Subversion提供的一个用于同步版本库的工具,通过svnsync同时可以达到备份SVN版本库的目的。svnsync的使用方法如下:1、svnsyncinit初始化,建立目标库和源库之间的同步关系命令格式svnsyncinit目标库URL源库URL2、svnsyncsync真正的同步命令格式svnsyncsync目标库URL如果
- (转)SVN:利用svnsync和hooks单向备份同步版本库
aaron是我啊
系统运维
前言SVN部署好了之后,备份又是个问题。这里选择svnsync工具进行备份。从centos上的源库备份到Windowsserver2012服务器中(我是从windowsserver2012[192.168.1.1]上的源库备份到windows2008R2[192.168.1.2]备份库上)。注意注意再注意:这个是单向同步,备份库不能有任何人为修改版本号,否则会同步失败,否则会同步失败,否则会同步失
- 工作随笔——使用svnsync实时备份SVN版本库
denglei3072
操作系统
前段时间把SVN版本库从win迁移到了Linux上,没隔几天那台win的磁盘就严重坏道了。。。。这TMD什么运气!花费了点时间研究了下svn自己的同步工具。写个日志记录下。注意:svnsync要求svn版本1.4+下面的内容来自svnbook-1.4svnsyncsvnsync是Subversion的远程版本库镜像工具,它允许你把一个版本库的内容录入到另一个。在任何镜像场景中,有两个版本库:源版本
- SVN win svnsync 同步
newego2008
源SVN:http://192.168.0.101/svn/src用户名:zxb密码:123456目标SVN:http://192.168.0.105/svn/bak用户名:zxb密码:123456初始化:svnsyncinitfile:///C:/Repositories/bakhttp://192.168.0.101/svn/src--source-usernamezxb--source-pa
- svnsync 同步
超超王贱贱
WindowsSVN
Step1.svnadmincreateRunonce@echooffecho---------------------------------------------------------------------------echo%date:~0,10%%time%echoStart...echoCreatingmyrep...svnadmincreatemyrepechoEnd.echo-
- 执行svn sync命令做svn同步时遇到Failed to get lock on destination repos, currently held by ...错误
zdzzn1314
手动执行命令时,报错:发生以上情况的有两种情况:1.有正在同步的进程未完成,lock未释放;2.上一次同步的进程异常导致中断,lock未释放。3.有svn冲突SVN同步时,源库端会在目标库端加lock,成功同步后释放lock,但当SVN同步异常中断后,lock是不会自动释放的。这时在执行svnsync命令,就会出现如上问题;解决方案:执行:svnpropdelsvn:sync-lock--revp
- svnsync代码同步
zdzzn1314
svn
由于开发需要,想要将开发的代码同步部署至两台服务器上,于是考虑到了svn的代码同步svnsync同步方式备份,要用到两个命令1、svnsyncinit初始化,建立本地库和源库之间的同步关系命令格式svnsyncinit本地URL源库URL2、svnsyncsync真正的同步命令格式svnsyncsync本地URL步骤:1.创建本地svn库(创建一个空库就行了),省略此步骤,可以参考:创建本地svn
- 使用svnsync实时异地备份配置库
w171066
公司机房环境不稳定,领导要求做SVN的实时异地备份,以保证数据安全。备份服务器非公司网络,可远程访问。前提条件:1.备份服务器需要安装和主服务器相同的环境。例如,主服务器的环境为Apache2.4.15+SVN1.8.17,那么从服务器也需要设置相同的环境。2.主服务器能够通过HTTP远程访问备份服务器的配置库首先搭建备份服务器环境,以下步骤在备份服务器(192.168.3.2)上执行1.安装和配
- python 通过cmd 检查 SVN 配置库同步
thinklog2018
背景简介:目前对SVN配置库已经部署了svnsync同步机制,通过定时任务定期对主备配置库进行同步。但同步结果需要到服务器上去检查执行情况,或者连接到配置库查看最新的更新,在配置库比较大的情况下也不方便。思路:svninfo命令可以连接到svn配置库获取配置库的情况,其中包含revision信息。通过python调用svninfo命令来获取主备配置库的revision信息,如果两者相同,则处于同步
- windows下svn备份
Demonson
运维SVN
转载:https://www.cnblogs.com/HByang/articles/9088206.htmlsvn备份的三种方法1)svnadmindump2)svnadminhotcopy3)svnsync.注意,svn备份不宜采用普通的文件拷贝方式(除非你备份的时候将库暂停),如copy命令、rsync命令。笔者曾经用rsync命令来做增量和全量备份,在季度备份检查审计中,发现备份出来的库大
- SVN 版本库同步 从目标版本库获得锁失败
zbp_uestc
版本控制
在使用svn进行版本库同步的过程中,因为意外的原因终止了某次同步,此时如果再进行下一次同步,则会提示以下错误:从目标版本库获得锁失败,当前被“adt-8c676d570cf:8a23d087-3aeb-5a41-b6ec-8a7024a4ce73”持有..........svnsync:Couldn'tgetlockondestinationreposafter10attempts问题的细节情况:
- svnsync问题: have you committed to the destination without using svnsync
Liu610921
8.SCMsvnsyncsvnhaveyoucommittedtothedestinationwithoutusingsvnsync
由于网络原因,急着备份大的SVN代码库。利用svnadmincreate新建镜像库。svnsyncinit实现同步初始化,svnsyncsync同步部分版本中后,网络太慢。决定手动拷贝svn代码库的文件到镜像库。svnsyncsynchttp://localhost/projects2同步到了版本1475。1.在E:\SVN\svn\repositories\projects2\db下找到E:\S
- svn的svnsync的同步工具
weixin_33878457
1、把主svn上的数据同步至从svn上,以备不时之需主:192.168.9.87从:192.168.9.882、在从机器上做以下操作:自动同步,在主上post-commit添加svnsyncsync--non-interactivesvn://192.168.9.87/usca--usernameusca--passwordxxx1)、创建所需目录,并修改属主属组sudomkdir-p/stora
- 用svnsync同步时如果出错
weixin_33725126
用svnsync同步时如果出错SVN同步时如果出错:传输文件数据..........svnsync:/build/buildd/subversion-1.5.4dfsg1/subversion/libsvn_delta/text_delta.c:609:apply_window:断言`window->sview_len==0||(window->sview_offset>=ab->sbuf_off
- svn 同步备份的所有问题,亲测可用
weixin_30763455
svnsync异地同步收获(2010-07-0610:06:19)转载▼标签:杂谈分类:svnsvnsync异地同步收获:来自:我用Subversion- http://www.iusesvn.com/ && http://dev.10086.cn/cmdn/bbs/thread-14980-1-1.html本文介绍利用svnsync来同步版本库,达到备份版本库的目的要用到两个命令1、svnsyn
- svnsync: Failed to get lock on destination repos, currently held by 'localhost.localdomain
w171066
SVN配置管理
执行svnsync命令出现如下错误:[root@localhostbin]#/bin/svnsyncsynchronize--non-interactivehttp://192.168.2.3:8000/usr/svn/tools--usernamesyncuser--passwordsyncuserFailedtogetlockondestinationrepos,currentlyheldby
- SVN:利用svnsync定时单向备份同步版本库
坚不萌
Linux运维
1.前言SVN部署好了之后,备份又是个问题。这里选择svnsync工具进行备份。从centos上的源库备份到Windowsserver2012服务器中。2.实施过程2.1目标服务器svn配置首先要安装VisualSVNServerManager,这个直接点击安装,默认即可。然后右键“Repositories”,新建仓库:选择第一个,下一步:这里一定要选择第一个,空白仓库。设置仓库名,我这里用的是“
- Subversion同步工具svnsync出错:Failed to get lock on destination repos
mark007
svn
Subversion同步工具svnsync出错:Failedtogetlockondestinationrepos在Subversion版本库同步工具:svnsync一文中提到了Subversion提供的同步工具svnsync,然而在使用svnsync同步两个版本库时经常出现如下的错误,并自动中断了同步操作:Copiedpropertiesforrevision461.svnsync:Server
- 使用svnsync实现版本库的同步备份
jogholy
操作系统
操作流程:1、在要备份的机器上建立版本库:svnadmincreatetest2、进入hooks目录:cdtest/hooks/3、创建pre-revprop-change文件:cppre-revprop-change.tmplpre-revprop-change4、修改pre-revprop-change权限:chomd+xpre-revprop-change5、修改文件:vipre-revpr
- svnsync 的各种问题
flying881114
Miscellaneous
1.Repositoryhasnotbeenenabledtoacceptrevisionpropchanges解决方法:Linux:在hooks下新建pre-revprop-change文件,内容是#!/bin/shexit0;Windows:在hooks下新建pre-revprop-change.bat文件,内容为空即可2.Revpropchangeblockedbypre-revprop-c
- 执行svn sync命令做svn同步时遇到Failed to get lock on destination repos, currently held by ...错误
subbao
最近给公司迁移svn仓库,需要做主从,选择了定时执行svnsync命令来完成备份,所有的库都在凌晨2点正常增量备份,只有一个没有正常执行,手动执行命令时,报错:发生以上情况的有两种情况:1.有正在同步的进程未完成,lock未释放;2.上一次同步的进程异常导致中断,lock未释放。SVN同步时,源库端会在目标库端加lock,成功同步后释放lock,但当SVN同步异常中断后,lock是不会自动释放的。
- 代码版本管理SVN
词穷又词贫
安装#yuminstallsubversion-y#安装常用文件有:#/etc/rc.d/init.d/svnserve服务启动程序#/usr/bin/svnsvn客户端命令程序#/usr/bin/svnadminsvn服务器管理程序#/usr/bin/svnservesvn服务器启动程序#/usr/bin/svnsyncsvn仓库同步工具(可实现备份,主备)#/usr/bin/svndumpfi
- SVN 服务器镜像
woyaoying
工作架构
已经试用过svnsync工具,非常强大,简单的讲就是一个SVN的拷贝,关于遇到的问题做一个整理。windows版本:1.把要同步的SVN(目的SVN)的Repository下的pre-revprop-change.tmpl改为pre-revprop-change.bat目的是为了保护目的服务器的提交用户只能使SVNMaster。内容如下:Windowsbatfile:IF"%3"=="SVNMas
- svnsync同步svn备份(源centos服务器地址到目的window服务器)
swear01
代码管理linux
目标:将当前已使用的Centos的svn(subversion)版本库备份到WindowsServer环境VisualSVN中源(Centos)服务器地址:svn://192.168.1.1/svn/srcA备份(WindowsServer)服务器地址:svn://192.168.1.2/svn/destAwindows环境建立镜像版本库1234567#VisualSVN直接窗口创建版本库dest
- SVN的备份和还原
H22F
Linux相关svn备份
转自:http://spiritfrog.iteye.com/blog/448578+http://magnet2008.iteye.com/blog/586578备份策略==============svn备份一般采用三种方式:1)svnadmindump2)svnadminhotcopy3)svnsync.注意,svn备份不宜采用普通的文件拷贝方式(除非你备份的时候将库暂停),如copy命令、r
- svn主备实现
longxj04
工具类
参考原文http://blog.csdn.net/xabc3000/article/details/7246703比较常用的是下面这部分,可以实现,对A库的提交同时同步到B库版本库同步Subversion1.4增加了同步机制,可以实现一个版本库同另一个版本库的同步(但好像只是单向的),我们可以用来实现版本库的备份或镜像。3.1.对目标库初始化svnsyncinitsvn://localhost/p
- Enum 枚举
120153216
enum枚举
原文地址:http://www.cnblogs.com/Kavlez/p/4268601.html Enumeration
于Java 1.5增加的enum type...enum type是由一组固定的常量组成的类型,比如四个季节、扑克花色。在出现enum type之前,通常用一组int常量表示枚举类型。比如这样:
public static final int APPLE_FUJI = 0
- Java8简明教程
bijian1013
javajdk1.8
Java 8已于2014年3月18日正式发布了,新版本带来了诸多改进,包括Lambda表达式、Streams、日期时间API等等。本文就带你领略Java 8的全新特性。
一.允许在接口中有默认方法实现
Java 8 允许我们使用default关键字,为接口声明添
- Oracle表维护 快速备份删除数据
cuisuqiang
oracle索引快速备份删除
我知道oracle表分区,不过那是数据库设计阶段的事情,目前是远水解不了近渴。
当前的数据库表,要求保留一个月数据,且表存在大量录入更新,不存在程序删除。
为了解决频繁查询和更新的瓶颈,我在oracle内根据需要创建了索引。但是随着数据量的增加,一个半月数据就要超千万,此时就算有索引,对高并发的查询和更新来说,让然有所拖累。
为了解决这个问题,我一般一个月会进行一次数据库维护,主要工作就是备
- java多态内存分析
麦田的设计者
java内存分析多态原理接口和抽象类
“ 时针如果可以回头,熟悉那张脸,重温嬉戏这乐园,墙壁的松脱涂鸦已经褪色才明白存在的价值归于记忆。街角小店尚存在吗?这大时代会不会牵挂,过去现在花开怎么会等待。
但有种意外不管痛不痛都有伤害,光阴远远离开,那笑声徘徊与脑海。但这一秒可笑不再可爱,当天心
- Xshell实现Windows上传文件到Linux主机
被触发
windows
经常有这样的需求,我们在Windows下载的软件包,如何上传到远程Linux主机上?还有如何从Linux主机下载软件包到Windows下;之前我的做法现在看来好笨好繁琐,不过也达到了目的,笨人有本方法嘛;
我是怎么操作的:
1、打开一台本地Linux虚拟机,使用mount 挂载Windows的共享文件夹到Linux上,然后拷贝数据到Linux虚拟机里面;(经常第一步都不顺利,无法挂载Windo
- 类的加载ClassLoader
肆无忌惮_
ClassLoader
类加载器ClassLoader是用来将java的类加载到虚拟机中,类加载器负责读取class字节文件到内存中,并将它转为Class的对象(类对象),通过此实例的 newInstance()方法就可以创建出该类的一个对象。
其中重要的方法为findClass(String name)。
如何写一个自己的类加载器呢?
首先写一个便于测试的类Student
- html5写的玫瑰花
知了ing
html5
<html>
<head>
<title>I Love You!</title>
<meta charset="utf-8" />
</head>
<body>
<canvas id="c"></canvas>
- google的ConcurrentLinkedHashmap源代码解析
矮蛋蛋
LRU
原文地址:
http://janeky.iteye.com/blog/1534352
简述
ConcurrentLinkedHashMap 是google团队提供的一个容器。它有什么用呢?其实它本身是对
ConcurrentHashMap的封装,可以用来实现一个基于LRU策略的缓存。详细介绍可以参见
http://code.google.com/p/concurrentlinke
- webservice获取访问服务的ip地址
alleni123
webservice
1. 首先注入javax.xml.ws.WebServiceContext,
@Resource
private WebServiceContext context;
2. 在方法中获取交换请求的对象。
javax.xml.ws.handler.MessageContext mc=context.getMessageContext();
com.sun.net.http
- 菜鸟的java基础提升之道——————>是否值得拥有
百合不是茶
1,c++,java是面向对象编程的语言,将万事万物都看成是对象;java做一件事情关注的是人物,java是c++继承过来的,java没有直接更改地址的权限但是可以通过引用来传值操作地址,java也没有c++中繁琐的操作,java以其优越的可移植型,平台的安全型,高效性赢得了广泛的认同,全世界越来越多的人去学习java,我也是其中的一员
java组成:
- 通过修改Linux服务自动启动指定应用程序
bijian1013
linux
Linux中修改系统服务的命令是chkconfig (check config),命令的详细解释如下: chkconfig
功能说明:检查,设置系统的各种服务。
语 法:chkconfig [ -- add][ -- del][ -- list][系统服务] 或 chkconfig [ -- level <</SPAN>
- spring拦截器的一个简单实例
bijian1013
javaspring拦截器Interceptor
Purview接口
package aop;
public interface Purview {
void checkLogin();
}
Purview接口的实现类PurviesImpl.java
package aop;
public class PurviewImpl implements Purview {
public void check
- [Velocity二]自定义Velocity指令
bit1129
velocity
什么是Velocity指令
在Velocity中,#set,#if, #foreach, #elseif, #parse等,以#开头的称之为指令,Velocity内置的这些指令可以用来做赋值,条件判断,循环控制等脚本语言必备的逻辑控制等语句,Velocity的指令是可扩展的,即用户可以根据实际的需要自定义Velocity指令
自定义指令(Directive)的一般步骤
&nbs
- 【Hive十】Programming Hive学习笔记
bit1129
programming
第二章 Getting Started
1.Hive最大的局限性是什么?一是不支持行级别的增删改(insert, delete, update)二是查询性能非常差(基于Hadoop MapReduce),不适合延迟小的交互式任务三是不支持事务2. Hive MetaStore是干什么的?Hive persists table schemas and other system metadata.
- nginx有选择性进行限制
ronin47
nginx 动静 限制
http {
limit_conn_zone $binary_remote_addr zone=addr:10m;
limit_req_zone $binary_remote_addr zone=one:10m rate=5r/s;...
server {...
location ~.*\.(gif|png|css|js|icon)$ {
- java-4.-在二元树中找出和为某一值的所有路径 .
bylijinnan
java
/*
* 0.use a TwoWayLinkedList to store the path.when the node can't be path,you should/can delete it.
* 1.curSum==exceptedSum:if the lastNode is TreeNode,printPath();delete the node otherwise
- Netty学习笔记
bylijinnan
javanetty
本文是阅读以下两篇文章时:
http://seeallhearall.blogspot.com/2012/05/netty-tutorial-part-1-introduction-to.html
http://seeallhearall.blogspot.com/2012/06/netty-tutorial-part-15-on-channel.html
我的一些笔记
===
- js获取项目路径
cngolon
js
//js获取项目根路径,如: http://localhost:8083/uimcardprj
function getRootPath(){
//获取当前网址,如: http://localhost:8083/uimcardprj/share/meun.jsp
var curWwwPath=window.document.locati
- oracle 的性能优化
cuishikuan
oracleSQL Server
在网上搜索了一些Oracle性能优化的文章,为了更加深层次的巩固[边写边记],也为了可以随时查看,所以发表这篇文章。
1.ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前,那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾。(这点本人曾经做过实例验证过,的确如此哦!
- Shell变量和数组使用详解
daizj
linuxshell变量数组
Shell 变量
定义变量时,变量名不加美元符号($,PHP语言中变量需要),如:
your_name="w3cschool.cc"
注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:
首个字符必须为字母(a-z,A-Z)。
中间不能有空格,可以使用下划线(_)。
不能使用标点符号。
不能使用ba
- 编程中的一些概念,KISS、DRY、MVC、OOP、REST
dcj3sjt126com
REST
KISS、DRY、MVC、OOP、REST (1)KISS是指Keep It Simple,Stupid(摘自wikipedia),指设计时要坚持简约原则,避免不必要的复杂化。 (2)DRY是指Don't Repeat Yourself(摘自wikipedia),特指在程序设计以及计算中避免重复代码,因为这样会降低灵活性、简洁性,并且可能导致代码之间的矛盾。 (3)OOP 即Object-Orie
- [Android]设置Activity为全屏显示的两种方法
dcj3sjt126com
Activity
1. 方法1:AndroidManifest.xml 里,Activity的 android:theme 指定为" @android:style/Theme.NoTitleBar.Fullscreen" 示例: <application
- solrcloud 部署方式比较
eksliang
solrCloud
solrcloud 的部署其实有两种方式可选,那么我们在实践开发中应该怎样选择呢? 第一种:当启动solr服务器时,内嵌的启动一个Zookeeper服务器,然后将这些内嵌的Zookeeper服务器组成一个集群。 第二种:将Zookeeper服务器独立的配置一个集群,然后将solr交给Zookeeper进行管理
谈谈第一种:每启动一个solr服务器就内嵌的启动一个Zoo
- Java synchronized关键字详解
gqdy365
synchronized
转载自:http://www.cnblogs.com/mengdd/archive/2013/02/16/2913806.html
多线程的同步机制对资源进行加锁,使得在同一个时间,只有一个线程可以进行操作,同步用以解决多个线程同时访问时可能出现的问题。
同步机制可以使用synchronized关键字实现。
当synchronized关键字修饰一个方法的时候,该方法叫做同步方法。
当s
- js实现登录时记住用户名
hw1287789687
记住我记住密码cookie记住用户名记住账号
在页面中如何获取cookie值呢?
如果是JSP的话,可以通过servlet的对象request 获取cookie,可以
参考:http://hw1287789687.iteye.com/blog/2050040
如果要求登录页面是html呢?html页面中如何获取cookie呢?
直接上代码了
页面:loginInput.html
代码:
<!DOCTYPE html PUB
- 开发者必备的 Chrome 扩展
justjavac
chrome
Firebug:不用多介绍了吧https://chrome.google.com/webstore/detail/bmagokdooijbeehmkpknfglimnifench
ChromeSnifferPlus:Chrome 探测器,可以探测正在使用的开源软件或者 js 类库https://chrome.google.com/webstore/detail/chrome-sniffer-pl
- 算法机试题
李亚飞
java算法机试题
在面试机试时,遇到一个算法题,当时没能写出来,最后是同学帮忙解决的。
这道题大致意思是:输入一个数,比如4,。这时会输出:
&n
- 正确配置Linux系统ulimit值
字符串
ulimit
在Linux下面部 署应用的时候,有时候会遇上Socket/File: Can’t open so many files的问题;这个值也会影响服务器的最大并发数,其实Linux是有文件句柄限制的,而且Linux默认不是很高,一般都是1024,生产服务器用 其实很容易就达到这个数量。下面说的是,如何通过正解配置来改正这个系统默认值。因为这个问题是我配置Nginx+php5时遇到了,所以我将这篇归纳进
- hibernate调用返回游标的存储过程
Supanccy2013
javaDAOoracleHibernatejdbc
注:原创作品,转载请注明出处。
上篇博文介绍的是hibernate调用返回单值的存储过程,本片博文说的是hibernate调用返回游标的存储过程。
此此扁博文的存储过程的功能相当于是jdbc调用select 的作用。
1,创建oracle中的包,并在该包中创建的游标类型。
---创建oracle的程
- Spring 4.2新特性-更简单的Application Event
wiselyman
application
1.1 Application Event
Spring 4.1的写法请参考10点睛Spring4.1-Application Event
请对比10点睛Spring4.1-Application Event
使用一个@EventListener取代了实现ApplicationListener接口,使耦合度降低;
1.2 示例
包依赖
<p