ZipSnapNG
Portable multi-platform backup tool with advanced features
Project directory structure:
- /code/: development tree
- /code/src/: source code
- /code/build/: build directory (not indexed in git)
- /release/: production tree
- /release/test/: test directory (not indexed in git)
- /release/versions/: version repository (not indexed in git)
- /release/ZipSnapNG/: target directory
- /release/ZipSnapNG/conf: contains configuration files
- /release/ZipSnapNG/docs: contains the documentation
- /release/ZipSnapNG/lib: contains the libraries
Who does what
- ZipSnapNG.jar is the compiled com.backup.zipsnap.ng.starter.Starter class which reads the settings from "conf/init.conf" and run ZipSnapNG within a new JVM
- lib/zipsnapng-vx.x.x.jar is the main program (com.backup.zipsnap.ng.Main) run by the starter class which reads the settings from "conf/zipsnapng.conf"
Development environment
- Development tool: Eclipse
- Version control system: Git
Compiling the project
- An Ant configuration file is provided at "code/build.xml" to build the two project's JARs
Starter's command line options (set with -D)
- gui: force the program to run the GUI (true/false)
- debug: enable debug mode for the starter application (true/false)
- interactive: interact with the main application's output (true/false)
- app.directory: set the application's directory to a given path
Running the project in Eclipse
- classmexer and zip4j jars must be added to the Classpath
- To force CLI mode use -Dgui=false in your Run Configuration (since javaw is always used)
- Set the application's directory with -Dapp.directory=release\ZipSnapNG in your Run Configuration (since running from the build directory)