Skip to content

pepperkit/git-hooks-maven-plugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Git Hooks Maven Plugin

Java CI with Maven Coverage Maintainability Rating Reliability Rating Security Rating

Maven plugin for easy git hooks configuration.

Usage

Add the plugin into your pom.xml, configure the hooks, and set the execution to install the hooks each time the project is rebuild. Be aware that for hooks to be installed to git, any mvn goal should be first executed, like compile or test. It means that after editing git-hooks-maven-plugin configuration in pom.xml, it's necessary to manually run mvn compile or any other maven goal, on the initializing step of which git hooks will be installed.

The example with pre-commit and pre-push hooks configured, will look like this:

<plugins>
    <plugin>
        <groupId>io.github.pepperkit</groupId>
        <artifactId>git-hooks-maven-plugin</artifactId>
        <version>1.1.0</version>
        <executions>
            <!-- It will automatically trigger `init` goal at each initialize project maven phase. -->
            <execution>
                <goals>
                    <goal>initHooks</goal>
                </goals>
            </execution>
        </executions>
        <configuration>
            <hooks>
                <pre-commit>mvn -B checkstyle:checkstyle</pre-commit>
                <pre-push>mvn -B test</pre-push>
            </hooks>
        </configuration>
    </plugin>
</plugins>

Hook's content is any command line script, which is considered successful if exit code is equal to 0, and not otherwise. If execution of the script is successful, git action will be proceeded, if not - it will be cancelled.

Project's structure

└── src
    ├── main                # code of the plugin
    ├── test                # unit tests
    └── system-test         # system tests
        └── resources       # system tests scenarios and pre-configured pom files needed for the tests

More about pepperkit projects could be found on its website: https://pepperkit.github.io/