Initializer Project
Create a new initializer expansion resource project.
- Expansion resource:
net.democritus.initializer:initializer-initializer@5.7.0 - Command:
nsinit initializer
Overview
The initializer project initializer is an initializer bundle which is used to create new initializer expansion resource projects.
This initializer can provision a very comprehensive setup for a new initializer project containing the following:
- A Maven project for the expansion resource and the Maven project directory structure.
- A data resources index file, as well as a
ProjectTypedata resource to define the initializer project type and its arguments. - Empty
ProjectDataResolverandInteractiveModeHandlerimplementation classes that are defined in theProjectType. - Some typical project files are generated, such as
README.mdandCHANGELOG.mdas stub files to be filled out by the user. Also an EditorConfig file with a basic setup for clean editing of the files in the repository is generated.
Generated files
pom.xmlMaven project file with the name of the output directory as the artifactId..gitignorefile to ignore any known files that should not be committed to a Git repository..editorconfigfile with some basic standard rules for formatting code in files.README.mdfile to provide some basic information about the project.CHANGELOG.mdfile to document changes to the project.ProjectDataResolver.javafile to implement logic to determine default argument values for the project type's arguments.ProjectInteractiveModeHandler.javafile to implement the interactive mode to prompt the user with specific questions.projectTypes.xmlfile to define the model containing all the arguments available for the project._data.xmlfile to list any data resources used in the expansion resource, such as theprojectTypes.xmlfile.
Parameters
For an overview, run nsinit initializer -h.
| Option | Description |
|---|---|
-h,--help | Returns the help with an overview of all commands. |
--groupid,--group-id | The groupId for the pom.xml Maven project file. |
--artifactid | The artifactId for the pom.xml Maven project file. |
-D | Allows you to set any argument or flag defined for the project type, even those that are implicit. For an argument, the key should be prefixed by arg. and for a flag with flag.. E.g.: -Darg.artifactId=test-expanders |
-o,--output | The directory where the project should be generated, rather than the current directory. |
-y,--yes-to-all | Disables the interactive mode and accepts defaults for all settings that were not specified as arguments. |
-f,--force | Forces the creation of the project, even when the output directory is not empty. |
Example
nsinit initializer -y -o test-initializer --groupid com.example
Resulting project:
test-initializer/
├── CHANGELOG.md
├── .editorconfig
├── pom.xml
├── README.md
└── src
├── main
│ ├── java
│ │ └── com
│ │ └── example
│ │ └── template
│ │ └── test
│ │ ├── TestProjectDataResolver.java
│ │ └── TestProjectInteractiveModeHandler.java
│ └── resources
│ └── data
│ └── initializer
│ ├── _data.xml
│ └── projectTypes.xml
└── test
├── java
└── resources