Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Create Spring Boot project from CLI with custom package name instead of "com.example.XXXX" [closed]

I am trying to create a Spring Boot project using its CLI with the command spring init --dependencies=web TestProject. With this TestProject project created. And the main class DemoApplication.java created with the package name com.example.

I want to create a spring-boot project with custom packageName and main className.

like image 542
Nandu Avatar asked Nov 27 '25 11:11

Nandu


1 Answers

Taking a look at the init command helps it. When you type spring help init, below is what you get

$ spring help init
spring init - Initialize a new project using Spring Initializr (start.spring.io)

usage: spring init [options] [location]

Option                       Description
------                       -----------
-a, --artifactId <String>    Project coordinates; infer archive name (for
                               example 'test')
-b, --boot-version <String>  Spring Boot version (for example '1.2.0.RELEASE')
--build <String>             Build system to use (for example 'maven' or
                               'gradle') (default: maven)
-d, --dependencies <String>  Comma-separated list of dependency identifiers to
                               include in the generated project
--description <String>       Project description
-f, --force                  Force overwrite of existing files
--format <String>            Format of the generated content (for example
                               'build' for a build file, 'project' for a
                               project archive) (default: project)
-g, --groupId <String>       Project coordinates (for example 'org.test')
-j, --java-version <String>  Language level (for example '1.8')
-l, --language <String>      Programming language  (for example 'java')
--list                       List the capabilities of the service. Use it to
                               discover the dependencies and the types that are
                               available
-n, --name <String>          Project name; infer application name
-p, --packaging <String>     Project packaging (for example 'jar')
--package-name <String>      Package name
-t, --type <String>          Project type. Not normally needed if you use --
                               build and/or --format. Check the capabilities of
                               the service (--list) for more details
--target <String>            URL of the service to use (default: https://start.
                               spring.io)
-v, --version <String>       Project version (for example '0.0.1-SNAPSHOT')
-x, --extract                Extract the project archive. Inferred if a
                               location is specified without an extension

examples:

    To list all the capabilities of the service:
        $ spring init --list

    To creates a default project:
        $ spring init

    To create a web my-app.zip:
        $ spring init -d=web my-app.zip

    To create a web/data-jpa gradle project unpacked:
        $ spring init -d=web,jpa --build=gradle my-dir

Thus to achieve what you want, you just need to specify the Group ID using the below command

$ spring init TestProject --groupId=com.mydomain

The above command create a project in which the DemoApplication.java is found with package name package com.mydomain.TestProject; and the pom has the group ID as <groupId>com.mydomain</groupId>

If your requirement is not to change the artifact's Group ID but just change the package name, then you can use the command with the --package-name flag

$ spring init TestApp --package-name=com.mydomain

this will create the class DemoApplication under the package com.mydomain and retain the Group ID to com.example in the POM. Combine multiple flags if you need.

like image 76
Debargha Roy Avatar answered Nov 30 '25 06:11

Debargha Roy



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!