ShowTable of Contents
Command Line Building of NSFs
To facilitate the building of NSF/NTF files from source code repositories, Domino Designer has provided a command line build system.
It is not a necessity to import source repositories into the Designer application to build NSF/NTF files.
This is aimed at supporting team based development using the Domino Designer.
Import an on-disk-project and create an NSF.
Remove any on-disk or NSF projects imported into the Designer since the beginning of a command-line session.
Ability to restart Designer at any point during the command processing and resume where it left off.
Setup
To enable this functionality, one line needs to be added to the notes.ini file
DESIGNER_AUTO_ENABLED=true
The command line build can be run in two different ways
Single Command
Command File
The single command has the format:
designer -RPARAMS -vmargs -Dcom.ibm.designer.cmd= [single command]
The single command is made up of a number of comma separated components, and is contained within double quotes.
[clean],[exit],[file name],[job name],[file path],[file name]
The values for each of the components are:
clean: true/false
exit: true/false
file name: String value containing the name of the NSF/NTF to be created. If no file extension if included then a type of NSF will be created.
job name: the job to be run
file path: the path to the .project file of the repository to be built
The Headless Designer supports a number of jobs:
importandbuild [on disk project path] [nsf name]
Imports the on-disk, creates the NSF, and begins the association. Processing of the next job does not wait for the sync or build to finish.
Note: this command will fail if the on-disk project already exists in the Designer workspace. Using clean will remove these when done processing. Specifying an already existing NSF file will not cause the build to fail.
wait [project name] [# of retries]
Waits for the given project to complete all build or sync operations. Since its not deterministic when (if) either event will start or finish, this loops a number of times looking before failing.
config [stop on error - true/false] [exit on error - true/false]
Allows configuring some properties that control operation
clean
Deletes all projects create so far in this execution. Does NOT delete the project contents.
exit [# milli delay] [restart-true/false] [resume - true/false]
Exits Designer. restart will restart the Designer, and resume will tell Designer to continuing processing the command file if there are commands after this exit command.
Example:
designer.exe -RPARAMS -vmargs -Dcom.ibm.designer.cmd="true,true,Discussion.nsf,importandbuild,C:\XPageApps\Discussion\.project,Discussion.nsf"
The output of the build can be viewed in a console by specifying the console as a program argument
designer -RPARAMS -console -vmargs -Dcom.ibm.designer.cmd=single command
The command line build also writes to its own log files
HEADLESS0.log
HEADLESSJOB0.log
These files are stored in the root Notes directory
For multiple commands, it is possible to pass a file path as a Java property to the command line build.
designer -RPARAMS -vmargs -Dcom.ibm.designer.cmd.file=path to command file
This file will contain one command per line, and a sample command file would be as follows:
config,true,true
importandbuild,C:\test\XPagesExt\.project,testXPages
wait,testXPages,20
importandbuild,C:\test\XPagesSBT\.project,testSBT
wait,testSBT,20
clean
exit
Although this is a command line build system, the Designer is launched and immediately minimised. However, no user interaction is needed with the GUI. However, due care needs to be taken as with the existence of the GUI, there is potential for issues where some unexpected state could display a dialog, etc. Also note that a Notes ID without a password should be used for headless builds. Because of this, it is recommended that Headless Designer builds should be executed only on secure build machines.