Automatizálása összeszerelés és ellenőrzés a projekt verziók
Automatizálása összeszerelés és ellenőrzés a projekt verziók
Mit csinál.
A fejlesztés alatt, programozók egy csoportja, egy közös feladat, hogy létrejöjjön a következő változata a projekt, a további vizsgálatok ez a verzió, majd újra összeszerelését, stb Mi lenne összegyűjteni egy másik változata, aki felelős az összeállítás lesz, hogy a legújabb verzióját a fájlt, hogy növelje a verziószámot, építeni a projekt, és ha minden jól megy próbára egy bizonyos helyen kész fájlt vagy fájlokat. Általános szabály, hogy fenn kell tartanunk a változat történetében. Meg kell telepíteni Delphi könyvtárak - illetve az átmenet egy új változata a Delphi vagy a könyvtárak is okozhat sok problémát: építeni az új verzió lehet használhatatlan, és visszatér egy régebbi változata Delphi, stb
Általában ez a történet arról szól, hogy hogyan lehet automatizálni a folyamat az összeszerelés és a küldő változatban.
Hol és hogyan kell építeni a projekt.
Azt szeretnénk, hogy foglaljon egyszerre, az alábbi receptek dolgozni Delphi 6 (Update1, Update2).
Ha beszélünk automata összeszerelés során fogja használni a parancssorban. A szokásos Delphi két programot, hogy lehet használni, hogy összegyűjti projektek: dcc32 és tenni. Mindkettő az úton $ Delphi \ Bin.
DCC32 gyűjt egy projekt fájl passed parancssorban. A többi paraméter (könyvtár utak, fordítási opciókat, stb) is meg lehet adni a parancssorban vagy egy fájlt a dcc32.cfg $ Delphi \ Bin.
Tedd gyűjti össze a projekt meghatározott make-fájlt (sőt, ő következetesen hívja dcc32 számukra). Sőt, a sima szöveges fájl, akkor kényelmesen szerkeszteni az utat a könyvtár, valamint a lehetőségek összeállításához.
Tehát hozz létre egy könyvtárat, ahol a fájlok találhatók. például
Dekódolja: Delphi + frissítés 6 2 1 + RTL frissítés.
Másolás Delphi a megfelelő könyvtárban ugyanabban a könyvtárban az alábbi fájlokat:
BIN \ brc32.exe
BIN \ brcc32.exe
BIN \ dcc32.cfg
BIN \ DCC32.EXE
BIN \ lnkdfm60.dll
BIN \ make.exe
BIN \ rlink32.dll
BIN \ rw32core.dll
FORRÁS \ *. *
Összesen mintegy 30M, és elvileg elég, de az egyszerűség kedvéért és a sebesség is másolja a könyvtár «BEHOZATALAIRA» és «LIB». Kiderült körül 110M, de akik most foglalkozik ilyen méretekkel? Továbbra is rögzíteni dcc32.cfg file:
-aWinTypes = Windows; WinProcs = Windows; DbiProcs = BDE; DbiTypes = BDE; DbiErrs = BDE
-uC: \ Delphi \ D6U2RTL1 \ Lib; C: \ Delphi \ D6U2Rtl1 \ Bin
-IC: \ Delphi \ D6U2RTL1 \ Lib
Mindez lehet írni a lemezre, és mindig a rendszer kiépítése a projekt Delphi 5 percig bármilyen számítógépen.
Delphi létrehoz egy projekt összeállításához a mi fordító: Delphi-New Applisation. Majd tárolja a C: \ Delphi \ testvér \ testVer.dpr. Ott is tartani a projekt csoport fájlt (pl Project Manager - «Save Prgect csoport»). Most jobb sort a fájl testver.bpg
Mi lefordítani a projekt:
Tehát, ha te mindent helyesen, meg kellett kapnia Testver.exe
illemtudás
Nem szeretem, ha az összes fájlt egy kupacban, és így egy kicsit modernizáló könyvtár struktúra -sozdadim külön mappa forráskódot, lefordított bináris és modulok. Illetve FORRÁS, DCU, BIN. C: \ Delphi \ testvér \ BIN
C: \ Delphi \ testvér \ DCU
C: \ Delphi \ testvér \ FORRÁS \
C: \ Delphi \ testvér \ FORRÁS \ TestVer.bpg
C: \ Delphi \ testvér \ FORRÁS \ TestVer.dpr
C: \ Delphi \ testvér \ FORRÁS \ TestVer.res
C: \ Delphi \ testvér \ FORRÁS \ Unit1.dfm
C: \ Delphi \ testvér \ FORRÁS \ Unit1.pas
= EXE kimeneti könyvtár
# -I
= Tartalmazza könyvtárak
# -N
= DCU kimeneti könyvtár
# -W = Output figyelmeztető üzenetek
# -Q = Csendes fordításkor
# -CG = GUI megcélzott
DCC = $ (ROOT) \ bin \ dcc32.exe $ ** -B -e $ (BIN) -n $ (DCU) -u $ (LIB) -w -q -CG
TestVer.exe: $ (ProjectPath) \ Source \ TestVer.dpr
cd $ (ProjectPath) \ Source
$ (DCC)
Most lehet gyűjteni:
Összejönni további könyvtárakra.
Kezdésként nézzük információkat tartalmazza a fájl verzióját a projektben, és megjeleníti azt. A Delphi, hajtsa végre a következő Project-beállításai Amikor közé ezt az opciót, Delphi automatikusan generál összeállított erőforrás kiterjesztésű fájl «res». Ha megnézzük a projekt fájl (TestVer.dpr), láthatjuk a fordító irányelv, amely megmondja a fordítónak, hogy a csatlakoztatni kívánt fájl nevét, a projekt és bővítése «res».
Az információk megjelenítéséhez, azt fogja használni a könyvtárat Jedi Code Library. bár ez nem számít (sokáig szoktam RXLib, de változnak az idők ...). Forrásai a könyvtár, én csak másoljuk a C: \ Delphi \ D6U2RTL \ Lib_AddOn \ JCL. Most a szabályok kissé forrásokból (Source1.rar) írj egy eseménykezelő FormCreate: // Hiányos
felhasználások
JclFileUtils;
A figyelmes olvasó már észrevette, hogy a make fájl már használatban változó LIB. TestVer.bpg kicsit módosítani fájlt is meg lehet adni a könyvtárak LIBADDON = C: \ Delphi \ D6U2RTL1 \ Lib_AddOn
LIB = C: \ Delphi \ D6U2RTL1 \ Lib; $ (LIBADDON) \ JCL
Ezért módosításával LIB változó, akkor könnyen csatlakoztathatja az új könyvtár.
Összeállítása res fájlt brcc32
Minden tökéletes, a Delphi IDE, akkor már kezeli az információt a forrás fájlt. De hogyan lehet létrehozni egy fájlt anélkül, Delphi IDE? Mert brcc32 segédprogramot. Ezzel az eszközzel akkor össze a forrás fájlokat. Adok egy példát, amely remélem, minden világos lesz. Tehát hozz létre egy fájlt TestVer.rc: MAINICON ICON ir.ico
1 versionInfo
FILEVERSION 1,0,0,2
PRODUCTVERSION 1,0,0,2
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
FILEOS VOS__WINDOWS32
FILETYPE VFT_APP
BLOCK "VarFileInfo"
ÉRTÉK "Translation", 1049 1251
>
Ennek eredményeként, akkor kap TestVer.res fájlt.
= EXE kimeneti könyvtár
# -I
= Tartalmazza könyvtárak
# -N
= DCU kimeneti könyvtár
# -W = Output figyelmeztető üzenetek
# -Q = Csendes fordításkor
# -CG = GUI megcélzott
DCC = $ (ROOT) \ bin \ dcc32.exe $ ** -B -e $ (BIN) -n $ (DCU) -u $ (LIB) -w -q -CG
BRCC = $ (ROOT) \ bin \ brcc32.exe
TestVer.exe: $ (PROJECTPATH) \ Source \ TestVer.dpr
cd $ (PROJECTPATH) \ Source
$ (BRCC) $ *
$ (DCC)
Automatikus váltás a verziószámot az rc fájlban
Ehhez használja a programot írta egy bizonyos Chris Morris (Incverrc.rar). Utyanul I CodeCentral meg, és talán még mindig ott található. A program használatához nagyon egyszerű - meg kell paraméterként adja meg a nevét az rc fájlt. Például, mivel
Meghatározó fájl verzióját kötegelt fájlban
Most lehet írni egy batch fájlt, amely automatikusan növeli a verziószámot és építeni a projekt. De szeretném, hogy a parancs fájlt képes volt meghatározni a verziószámot a keletkező projekt, például a csomagolás a projekt forrásai az archívumba ezt a számot. Egyszerűbb módja, mint írni egy kis programot, mert nem találtam. Tehát ExeVer programot - kijelzők a standard kimenetre a formázott verziószámot. Állítsa össze a kívánt JCL és rxLib. Példák a munkaprogram alábbi: C: \ Delphi \ ExeVer> ExeVer.exe C: \ Delphi \ testvér \ Bin \ TestVer.exe% J.% I.% R.% B
1.0.0.2
C: \ Delphi \ ExeVer> ExeVer.exe C: \ Delphi \ testvér \ Bin \ TestVer.exe% J-% I-% 2R-% 3B
1-0-00-002
C: \ Delphi \ ExeVer> ExeVer.exe C: \ Delphi \ testvér \ Bin \ TestVer.exe% 3J
001
gyűjtemény algoritmus
Mindent meg fogunk tenni az alábbi algoritmust.
echo - VSS. hogy a legújabb verziójú fájlt
rem ------------------------------------------------- ---------------
echo - VSS. CheckOut% NAMEPROJECT% .rc
echo -. a verziószámot% NAMEPROJECT% .rc
C: \ Delphi \ Incverrc \ IncVerrc.exe -f% NAMEPROJECT% .rc
rem ------------------------------------------------- ---------------
echo - hogy: kezd gyűjteni projekt
% LEGYEN% -f% NAMEPROJECT% .bpg>. \ Bin \ Out.txt
ha errorlevel 1 goto endError
echo - teszi: Exe sikeresen megtörtént
rem visszatérő verzió információ
echo - VSS. CheckIn% NAMEPROJECT% .rc
echo rar egy -r -s -ep1 -m5 -x * .scc. \ Archiv \% NAMEPROJECT% _ %% %% verBuild. rar. \ Source \ *. * >> t $$. bat
visszajelzésnek
t $$. bat / wait
del t $$. bat
goto End
endError
rem ------------ Hiba történt a válogatás ------------------
echo - VSS. undoCheckOut% PROJECTNAME% .RC
echo.
echo ERROR cm. out.txt
szünet
cd. \ Bin