- Dependency management tool, mainly for C# projects
- Allow getting and building your projects with dependencies
- Every project is a git repository
- Every project is a solution or a content module
- You should have git and Visual Studio or MSBuild Tools installed
- Download zip from https://github.com/skbkontur/cement/releases/latest
- Unzip and run
dotnet\install.cmd
- Restart terminal
- Command
cm
shows you available commands in any directory - If you have installed Visual Studio 2017 in custom folder run
set VS150COMNTOOLS=D:\Program Files\Microsoft Visual Studio\2017\Professional\Common7\Tools\
(with your custom foler path) in cmd.
- You should have git and mono (5 or above) installed
- Download zip from https://github.com/skbkontur/cement/releases/latest
- Unzip and run
./install.sh
from the dotnet directory - Either add
~/bin/
to yourPATH
variable or runalias cm='mono ~/bin/dotnet/cm.exe'
- Run
cm
to see the list of commands
Here is a Dockerfile example of how to get Ubuntu image with cement installed
FROM ubuntu
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
RUN echo "deb http://download.mono-project.com/repo/ubuntu xenial main" | tee /etc/apt/sources.list.d/mono-official.list
RUN apt-get update
RUN apt-get install -y mono-devel git wget
RUN cd ~
RUN git clone https://github.com/skbkontur/cement.git ~/cement
RUN wget -O ~/cement/nuget.exe https://dist.nuget.org/win-x86-commandline/latest/nuget.exe
RUN mkdir ~/bin
RUN cd ~/cement && mono nuget.exe restore -OutputDir packages/ && msbuild /p:Configuration=Release
RUN mono ~/bin/dotnet/cm.exe reinstall
Use cm help
to view all cement commands.
Use cm %command_name% /?
or cm help %command_name%
to view command description.
All module descriptions are stored in a special git repo.
In the beginning your cement will use sample modules from https://github.com/KungA/cement-sample-modules/blob/master/modules
Command cm ls
shows modules A, B, C, D.
Let some commands run to get and build module A, which uses modules B, C, D.
All modules should be downloaded into one 'cement tracked' directory.
Download module A with deps B, C, D.
Go to module directory.
Build dependencies for current module in the right order.
Build current module. You can use it now.
Get latest versions of dependencies from git
Need to build new version of modules, which were changed.
And current module.
-
Specify git repo witch will contain all module descriptions like https://github.com/KungA/cement-sample-modules
-
Add empty
modules
file to it and push -
Fill it into
%userprofile%\.cement\settings
file instead ofgit@github.com:KungA/cement-sample-modules.git
-
Create repositories for your modules like
https://github.com/KungA/cement-sample-A
https://github.com/KungA/cement-sample-B
-
Run
cm module add A git@github.com:KungA/cement-sample-A.git
to add your modules to cement -
Fill
module.yaml
file, describing cement modules (see appropriate documentation)