As a JVM based project, it was no-brainer use Maven as it development platform. It is quite versatile and has a lot of out-of-box plugins that makes developer life easier. But, some tasks like create a new project and add dependencies could be repetitive. Sometimes, automate repetitive tasks could be easier if done in a simple bash script.
Here enters Kikaha' command line interface tool. It was designed to avoid repetitive tasks while working with Kikaha. Also, it could be useful to automate any Maven ou Bash Script task a developer intent to do more than once.
Kikaha's cli installation is easy as running the bellow commands on your console. It will manage a custom maven installation, configure some logging stuffs (making maven output a little less verbose and opaque), and install the default plugin repository.
curl -s http://download.kikaha.io/installer | bash
After the installation process, please close and re-open your terminal console and type the bellow command to finish the configuration process.
kikaha setup
The basic cli syntax is:
kikaha <command> <subcommand> <args> [--var1=foo --var2=bar ... --varN=blah]
Bellow is described all built-in commands and its correct syntax. All these commands could be configured with custom variables, that should be placed after the last argument, as described above.
kikaha build [<module>]
- builds a kikaha/maven projectkikaha package [<module>]
- generates a zip package with an executable kikaha projectkikaha run-app [<module>]
- run a kikaha projectkikaha clean [<module>]
- remove artifacts and stuffs generated by the lastests buildskikaha test [<module>]
- forces to run all unit and integration testsConfiguration variables for build commands
--skip-tests=true
- avoids the unit and integration tests executionskikaha repo add <repo_name> <git_repository_url>
- adds a plugin repositorykikaha repo update <repo_name>
- updates a plugin repositoryConfiguration variables for repository commands
--force=true
- override existing repositories if needed.kikaha project add-dep <groupid:artifactid:version>
- add a dependency to your project in a gradle way.kikaha project use <kikaha_version>
- redefines which Kikaha's version should be used at the project.kikaha project use-last
- forces the current project to use the Kikaha's lastest version.kikaha project create <template>
- creates a project based on a pre-defined project.Configuration variables for project templates' commands
--artifact-id=<name>
- defines the artifact id of the generated project. If not set will be the same as the template name.--group-id=<name>
- defines the artifact id of the generated project. Default value is: kikaha.sample.--version-id=<name>
- defines the artifact id of the generated project. Default value is: 1.0.0-SNAPSHOT--name=<name>
- useful only if artifact-id or group-id are not set, once it set these values if they are not set.Available project templates
2.0
- creates a raw project with CDI and Logback support for 2.0.X version of Kikaha.2.0-kotlin
- creates the same 2.0 project, but with (experimental) Kotlin support.2.1
- creates a raw project with CDI and Logback support for 2.1.X version of Kikaha.WELCOME About Kikaha philosophy
GETTING STARTED Getting started in 1 minute Creating a Kikaha maven project Architecture overview
TUTORIALS Logging configuration Configuring the server Creating your first HTTP route Kikaha's command line interface Configuring your favorite IDE Wro4j Integration
CORE FEATURES HTTP and HTTPS Routing static assets Dependency injection Authentication and authorization Smart routes
ESSENTIAL MODULES μRouting API WebSocket Routing Database Connection Pool JSON with Jackson Protobuf Mustache Templates Rocker Templates BCrypt
CLOUD MODULES Overview of Cloud Modules Consul.io Codahale's Metrics Auth0 Single Sign-On μWorkers - Actor-like API Hazelcast
AWS-RELATED MODULES Overview of AWS-Related Modules Deploying Applications on AWS AWS IAM Credentials AWS EC2 AWS SQS queues AWS CloudWatch metrics AWS Application Load Balancer AWS Lambda functions AWS X-Ray
ADVANCED TOPICS Creating custom modules Routing with Undertow's API Creating custom cloud modules