Archive for the 'SCM' Category
Upload the 3rd party artifact to local Archiva
Maven is a powerful build tool, more and more developers migrate to it, so do I. Below is the command for deploy the 3rd artifact to your local Archiva:
mvn deploy:deploy-file -DrepositoryId=internal -Durl=http://ssuzsws02:8080/archiva/repository/internal -DgroupId=com.amd.sws -DartifactId=mysql-connector-java -Dversion=3.0.17 -Dpackaging=jar -Dfile=test.jar
but before you issue this command, you should add the following lines to your local settings.xml
<servers>
<server>
<id>internal</id>
<username>admin</username>
<password>mypassword</password>
</server>
</servers>
FYI.: when you upload your jar file to Archiva, you can't see it immediately, please be patient and wait several minutes, the artifact list will be synced soon.
Install Trac On Your Windows
阅读本文前,请参考前面两篇文章:
SVN服务器的搭建 和 ViewVC的安装
注:由于WordPress的限制,下面有些路径的反斜杠使用正斜杠代替
1. Download & Install trac-0.10.4.win32.exe
2. Download & Install pysqlite-2.3.4.win32-py2.3.exe
3. Download & Install mod_python-3.3.1.win32-py2.3-Apache2.0.exe
4. Download & Install clearsilver-0.9.14.win32-py2.3.exe
5. Download & Install setuptools-0.6c7.win32-py2.3.exe
6. 在httpd.conf中增加配置如下:
LoadModule python_module modules/mod_python.so
<Location /trac>
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir c:/trac
PythonOption TracUriRoot /trac
</Location>
7. C:/>mkdir trac
8. C:/Trac>python c:/Python23/Scripts/trac-admin oa initenv
系统提示如下:
-----------------------------------------------------------------
Creating a new Trac environment at C:/Trac/oa
Trac will first ask a few questions about your environment in order to initalize and prepare the project database.Please enter the name of your project.This name will be used in page titles and descriptions.
Project Name [My Project]> OA
Please specify the connection string for the database to use. By default, a local SQLite database is created in the environment directory. It is also possible to use an already existing PostgreSQL database (check the Trac documentation for the exact connection string syntax).
Database connection string [sqlite:db/trac.db]>
Please specify the type of version control system, By default, it will be svn. If you don't want to use Trac with version control integration, choose the default here and don't specify a repository directory. in the next question.
Repository type [svn]>
Please specify the absolute path to the version control repository, or leave it blank to use Trac without a repository. You can also set the repository location later.
Path to repository [/path/to/repos]> c:/Repo/oa
Please enter location of Trac page templates. Default is the location of the site-wide templates installed with Trac.
Templates directory [C:/Python23/share/trac/templates]>
Creating and Initializing Project Installing default wiki pages
... ...
-----------------------------------------------------------------
9. 权限设置
<LocationMatch "/trac/[^/]+/login">
AuthType Basic
AuthName "Trac"
AuthUserFile c:/Repo/passwd.txt
Require valid-user
</LocationMatch>
10. 管理
- 下载WebAdmin
WebAdmin是一个对Trac进行权限控制的插件,安装完成后可以在Trac页面中直接对权限进行控制,其下载地址为http://trac.edgewall.org/wiki/WebAdmin,页面中有许多版本,根据自己需要下载即可(Trac 0.11以后的版本会自动集成WebAdmin,只有0.11之前的版本需要手动下载安装)。
- 下载后得到一个压缩包,解压得到一个*.egg的文件夹
- 拷贝刚才解压得到的*.egg文件夹,粘贴到你所要配置的Trac目录下的plugins目录,例如
C:/Trac/oa/plugins
- 在控制台执行easy_install
C:/Python23/Scripts/easy_install.exe C:/Trac/oa/plugins/TracWebAdmin-0.1.2dev_r4240-py2.3.egg
- 在Trac.ini文件中加上以下代码:
[components] webadmin.* = enabled
- 执行Trac-Admin的Upgrade命令
C:/Trac>python c:/Python23/Scripts/trac-admin update
- 重启Apache
- 完成,在控制台中输入
C:/Trac>python c:/Python23/Scripts/trac-admin c:/Trac/oa
Welcome to trac-admin 0.10.4 Interactive Trac administration console.
Copyright (c) 2003-2006 Edgewall Software
Type: '?' or 'help' for help on commands.
Trac [c:/Trac/oa]>
即可进行管理,但这里的管理是基于命令行的
也可以:
C:/>python c:/Python23/Scripts/trac-admin c:/Trac/oa permission add charry TRAC_ADMIN
这样的话,就可以用charry这个账户登陆到web页面进行管理了,只是没有命令行的管理界面强大。
ViewVC的安装
步骤如下:
- 下载ViewVC,并解压到:C:\viewvc-1.0.4
- 下载 Python-2.3.5.exe 并安装
- 下载 pywin32-210.win32-py2.3.exe 并安装
- 下载 svn-python-1.4.4.win32-py2.3.exe 并安装
- 在ViewVC的目录下执行 python viewvc-install,会提示:
C:viewvc-1.0.4>python viewvc-install This is the ViewVC 1.0.4 installer. It will allow you to choose the install path for ViewVC. You will now be asked some installation questions. Defaults are given in square bra Just hit [Enter] if a default is okay. Installation path [C:Program Filesviewvc-1.0.4]: C:viewvc-1.0.4 DESTDIR path (generally only used by package maintainers) []:
- 打开viewvc.conf,修改如下:
将cvs_roots = cvs: /home/cvsroot注释掉,改为:svn_roots = svn: c:\Repo\oa(这里的oa是我先前建立的Repository),再将 default_root = cvs注释掉. - 注意:svn_path最好也要填写,比如:svn_path = C:/Subversion/bin,否则annotate的时候会出错
在apache的httpd.conf加入:
ScriptAlias /codeview/ "C:/viewvc-1.0.4/bin/cgi/" <Directory "C:/viewvc-1.0.4/bin/cgi/"> AllowOverride None Options None Order allow,deny Allow from all </Directory>
加入diff支持
- 到 http://gnuwin32.sourceforge.net 逐一下载以下工具:
DiffUtils, enscript, libintl, libiconv, sed将他们分别解压,然后保存在 C:/ViewVCUtil下,并将 C:/ViewVCUtil 加入到 %PATH% 中
- 打开viewvc.conf,将use_enscript = 0改成1,重新启动standalone.py(如果是以apache+DAV的方式运行,则不需要执行standalone.py)
- 如果遇到
error: (2, 'CreateProcess', 'The system cannot find the file specified.')
的错误,请检查,C:/ViewVCUtil是否在%PATH%中,如果还是不行,请把C:/ViewVCUtil下的文件copy到C:/Windows/System32下,也可以。
SVN服务器的搭建
下面为单独配置SVN协议的方法,也就是说,SVN的Client端只能通过形如:svn://localhost/repo 的方法访问你的服务器
1:下载 svn-win32-1.4.5.zip 并解压到 c:/Subversion
2:C:\Subversion\bin\svnadmin create c:/Repo/foobar,创建容器
3:修改 C:\Repo\foobar\conf 下的配置文件,注意配置项要靠齐第一列
svnserve.conf 的文件内容如下: [general] anon-access = read auth-access = write password-db = passwd realm = My First Repository
passwd 的文件内容如下: [users] # harry = harryssecret # sally = sallyssecret charry = 123
可以看见,这里的密码是明文,注意安全。
4:下载 svnservice-1.0.0.msi 并安装,它可以让svn的以服务的形式运行起来,设置很简单。设置好Repository Path 和svnserve的path,执行start即可。
5:Done!
下面为Apache的DAV配置方法,这样的配置,可以通过浏览器来访问我们的仓库,通过SVN Client访问的形式为:http://localhost/repo1:下载 svn-win32-1.4.4.zip, 解压到 C:/Subversion
2:下载 apache_2.0.59-win32-x86-no_ssl.msi,安装到 c:/Apache
3:将C:/Subversion/Bin 下的所有的dll文件copy到C:/Apache/Apache2/bin下
4:将C:/Subversion/Bin 下的两个.so 文件copy到C:/Apache/Apache2/modules 下
5:修改apache的httpd.conf,加入:
LoadModule dav_module modules/mod_dav.so
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
6:在httpd.conf的最后加入
<Location /svn> DAV svn SVNParentPath C:/Repo AuthType Basic AuthName "Subversion Repository" AuthUserFile c:/Repo/passwd.txt Require valid-user </Location>
7:生成用户密码
c:/>htpasswd -bc passwd.txt charry 123
以后新增用户只要 c:/>htpasswd passwd.txt fred 即可
使用CVS搭建个人的版本控制系统
Charry 文
CVS像一部时光机器,可以让我们回溯到过去,对于开发人员,可以说它是必不可少的工具之一,我们可以把自己写的代码,文档等信息放入CVS中,以便那天需要查看这些文档的历史版本。下面简要介绍一下CVS的使用。
一:服务器端的安装
CVS是一个C/S模式的系统,它分为服务器端和客户端,并且它是跨平台的,Linux和Windows下都有相关的版本。既然本文的目的只是“供自己使用”,那么我们总是考虑简单便利。所以Windows平台自然就是我们的首选。
首先去 http://www.cvsnt.org下载最新版本的CVSNT,这里我不区分CVS和CVSNT的区别。我安装的是:cvsnt-2.5.03.2382。接下来去 http://www.wincvs.org 下载WinCVS,我的版本为:WinCVS2_0_2-4。
安装好CVSNT和WinCVS后,先来看一下CVSNT的设置,在它的设置界面中,我们转到"Repository Configuation"标签页,然后单击"Add",这时候我们依次输入容器的物理路径和容器的名字,就可以了,其他的所有配置都可以使用缺省值。假设这里我们的设置为:
Location: E:/CVS_Server
Name:/foo
二:cvsignore的使用
一般情况下,Import目录时,会把目录下的一些垃圾文件一并导入进去,比如VC生成的: Debug, Release, *.opt, *.aps, *.ncb, 或者Windows自己生成的 *.db,还有*.bak等,这些文件我们无须导入的CVS中,解决方法很简单,只要我们在导入前,搜索一下,把他们删除即可,但是这样做太麻烦了,CVS提供了一个简单的方法,首先把容器中的CVSROOT这个目录Checkout出来,看里面是否有个cvsignore文件,如果没有我们可以手工建立一个,里面内容如下:
# this is comment line
*.ncb *.opt *.plg *.aps *.scc *.idb *.dll *.pch *.pdb *.bak *.ilk *.exe *.obj *.user *.suo
Debug Release
它用来描述WinCVS在import的时候可以自动过滤哪些文件,这里可以一行写一个,也可以一行多个,每个项之间有个空格。编辑好,我们要把它commit到服务器,下次import的时候,要使用这些过滤选项,我们只要在"Import Setting"的"Import Options"中选中"Use default cvsignore..."就可以了。
三:服务器的备份和还原
我认为这个是最重要的一点了,没有人希望自己在CVS上所做的一切修改,在下次重装系统后就无法还原了。其实CVS的备份很简单,我们只要把前文提到的那个物理路径的目录备份了即可,也就是上面提到的 "E:/CVS_Server",待到系统安装完毕后,我们可以重新安装CVSNT,然后新建一个容器,把路径指向"E:/CVS_Server"即可。
用VC6和Install Shield6.2进行自动化构建
文:Charry
如果一个VC的项目中,有10个或者更多的工程(Project),当我们需要进行一次完整的构建(Build)时,如果你分别用VC 打开每个工程然后Build,相信大家都会觉得很是麻烦。其实VC就自带了一个强大的自动构建的工具: nmake 。它可以帮助你完成日常的构建工作。
nmake的详细用法,你可以通过在控制台下输入:nmake /help来查看。下面我举个实际的例子。
该项目有大约十多个工程,目录结构如下:
src/
+TSHA_LIB
+TSHP_CFG
+TSHA_BROW
+...
+TSHC_OPT
所有的项目文件源码位于src目录下,每个工程占用一个独立的目录。这时,我们可以编写Makefile文件如下:
VC=MSDEV.EXE
CFLAG_ALL=/make /rebuild
RMDIR=rmdir /S /Q
BIN_DLL_DIR=E:\Project\dvlp\client\Release\bin
DEST_DLL_DIR=E:\Project\dist\dll
DEST_BIN_DIR=E:\Project\dist\binall:
@echo Now building 共通
$(VC) TSHA_LIB/TSHA_LIB.dsp $(CFLAG_ALL)@echo Now building 故障管理
$(VC) TSHP_MON_MAPX/TSHP_MON.dsp $(CFLAG_ALL)@echo Now building 安全管理
$(VC) TSHI_SEC/TSHI_SEC.dsp $(CFLAG_ALL)@echo Now building 资源管理
$(VC) TSHP_CFG/TSHP_CFG.dsp $(CFLAG_ALL)@echo Now building 浏览器
$(VC) TSHA_BROW/TSHA_BROW.dsp $(CFLAG_ALL)@echo Now building 主控画面
$(VC) MAIN_MENU/MAIN_MNU.dsp $(CFLAG_ALL)@echo Now building TSData
$(VC) TSHA_DATA/TSHA_DATA.dsp $(CFLAG_ALL)@echo Now building 配置管理
$(VC) TSHB_CFG/TSHB_CFG.dsp $(CFLAG_ALL)@echo Now building 系统管理
$(VC) TSHE_SMT/TSHE_SMT.dsp $(CFLAG_ALL)@echo Now building 综合查询
$(VC) TSHF_QRY/TSHF_QRY.dsp $(CFLAG_ALL)@echo Now building 系能分析
$(VC) TSHP_NSO/TSHP_NSO.dsp $(CFLAG_ALL)@echo Now building 工单管理
$(VC) TSHL_TER/TSHL_TER.dsp $(CFLAG_ALL)@echo Now building 操作维护
$(VC) TSHC_OPT/TSHC_OPT.dsp $(CFLAG_ALL)@echo Now removing trash
$(RMDIR) TSHA_LIB\Release
$(RMDIR) TSHP_NSO\Release
$(RMDIR) TSHP_CFG\Release
$(RMDIR) TSHF_QRY\Release
$(RMDIR) TSHE_SMT\Release
$(RMDIR) TSHB_CFG\Release
$(RMDIR) TSHA_DATA\Release
$(RMDIR) MAIN_MENU\Release
$(RMDIR) TSHA_BROW\Release
$(RMDIR) TSHI_SEC\Release
$(RMDIR) TSHP_MON_MAPX\Release
$(RMDIR) TSHL_TER\Release
$(RMDIR) TSHC_OPT\Releasecopy $(BIN_DLL_DIR)\TSHA_LIB.dll $(DEST_DLL_DIR)
copy $(BIN_DLL_DIR)\TSHA_Data.dll $(DEST_DLL_DIR)
copy $(BIN_DLL_DIR)\TSHP_NSO.exe $(DEST_BIN_DIR)
copy $(BIN_DLL_DIR)\TSHP_CFG.exe $(DEST_BIN_DIR)
copy $(BIN_DLL_DIR)\TSHF_QRY.exe $(DEST_BIN_DIR)
copy $(BIN_DLL_DIR)\TSHE_SMT.exe $(DEST_BIN_DIR)
copy $(BIN_DLL_DIR)\TSHB_CFG.exe $(DEST_BIN_DIR)
copy $(BIN_DLL_DIR)\MAIN_MNU.exe $(DEST_BIN_DIR)
copy $(BIN_DLL_DIR)\TSHA_BROW.exe $(DEST_BIN_DIR)
copy $(BIN_DLL_DIR)\TSHI_SEC.exe $(DEST_BIN_DIR)
copy $(BIN_DLL_DIR)\TSHP_MON.exe $(DEST_BIN_DIR)
copy $(BIN_DLL_DIR)\TSHL_TER.exe $(DEST_BIN_DIR)
copy $(BIN_DLL_DIR)\TSHC_OPT.exe $(DEST_BIN_DIR)
对比上面的文件和你的项目结构,把它稍作修改,最好保存为‘Makefile’文件名。熟悉 UNIX的朋友都知道make使用Makefile作为配置文件,nmake亦然。把保存好的Makefile放在src目录下,在src目录下运行nmake就可以自动构建你的项目了。
很简单吧,Makefile的编写方法几乎UNIX下的Makefile相同。文件的开头是一些变量定义,比如:CFLAG_ALL是编译的参数,BIN_DLL_DIR是输出文件的位置,它和每个Project中的设置是一样的。构建后,我们可以自动调用rmdir删除目标文件,最后,把所有的.exe文件和.dll文件拷贝到Install Shield的工程目录下,在这里就是DEST_DLL_DIR和DEST_BIN_DIR 指定的目录。
Bingo,到此为止,用nmake自动构建就已经基本完成了。下面我们开始用Install Shield打包项目文件了,这个过程更简单,打开Install Shield,在菜单[Build] 中找到[Export (Build) Batch File...],输出一个.bat文件。以后你就不需要打开Install Shield,而只要执行这个.bat文件就可以给你的项目打包了。
如果你想把编译和打包一起做,你可在Makefile的最后调用打包的.bat文件。这样只要在控制台下输入nmake,1/10柱香的工夫你的项目就自动构建好了,岂不快哉。