# package, install, release, deploy phases

- `mvn package` will construct your artifactory, i.e. a jar file and then place it in the current working directory
- `mvn install` will put your packaged maven project i.e. a jar file into the **local** repository, so that your other local application can use it as a project dependency. Just like dms-encryption-util, we have to install it into `~/.m2/repository` directory so that it can be found. 
    - When your project does not find the dependency locally, it will fetch it from the remote repository and put it into `~/.m2/repository`
- `mvn release` will tag your current code in the specified SCM (version control system) and then change your version in your project. Basically it help you do automatic version tagging on GitHub 
    - This is not the default life cycle phase, it is
- `mvn deploy` will put your packaged maven project into the remote central repository, maven or internal repository that you have specified for sharing with other developers