Initializer Project
Create a new initializer expansion resource project.
- Expansion resource:
net.democritus.initializer:initializer-initializer@4.38.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
ProjectType
data resource to define the initializer project type and its arguments. - Empty
ProjectDataResolver
andInteractiveModeHandler
implementation classes that are defined in theProjectType
. - Some typical project files are generated, such as
README.md
andCHANGELOG.md
as 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.xml
Maven project file with the name of the output directory as the artifactId..gitignore
file to ignore any known files that should not be committed to a Git repository..editorconfig
file with some basic standard rules for formatting code in files.README.md
file to provide some basic information about the project.CHANGELOG.md
file to document changes to the project.ProjectDataResolver.java
file to implement logic to determine default argument values for the project type's arguments.ProjectInteractiveModeHandler.java
file to implement the interactive mode to prompt the user with specific questions.projectTypes.xml
file to define the model containing all the arguments available for the project._data.xml
file to list any data resources used in the expansion resource, such as theprojectTypes.xml
file.
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