My tip today will be about developers that use Apache Maven, but you can apply the same method for any command that you are tired of typing. I have shared the method below with a few of my (lazy) colleagues and because everyone enjoyed it so much, I am now sharing it with you:
- Open your ~/.bashrc or ~/.bash_profile
- Add the following function:
 
 mvnrun () {
 echo mvn $@
 eval mvn $@
 echo mvn $@
 }
 
 The function will echo the full maven command before and after running it. I found the echos helpful to see the full command and also to help me remember the full command and not be dependent on the aliases.
 
 
 
 
- Add an alias referencing the mvnrun function for every command that you are tired of typing. 
 
 For instance, when I want to run mvn clean install, I can just type the alias mci. This is the configuration you need to add to the file:
 alias mci='mvnrun clean install'
 
- Save the file and open a new bash shell to make the alias available. 
 
- Type the new alias and you should see maven start executing.
 
 For instance, this is my bash output when I type mci :
 
 $ mci
 mvn clean install
 [INFO] Scanning for projects...
 [INFO] ------------------------------------------------------------------------
 [INFO] Building My Maven Application
 [INFO] task-segment: [clean, install]
 [INFO] ------------------------------------------------------------------------
 ...
 [INFO] [clean:clean {execution: default-clean}]
 ...
 [INFO] [surefire:test {execution: default-test}]
 ...
 [INFO] ------------------------------------------------------------------------
 [INFO] BUILD SUCCESSFUL
 [INFO] ------------------------------------------------------------------------
 mvn clean install
Note that you can still append maven options after the alias and the mvnrun function will append them at the end of your command. For instance, if I type:
$ mci -P int-tests
it will translate to:$ mvn clean install -P int-tests
Below are the most common aliases I use. There are some conventions that I use such as ee stands for eclipse:eclipse. ec=eclipse:clean, st=skip tests, c=clean, i=install, t=test, s=skip, tc=tomcat:, dr=dependency report...you get the idea. If you don't like my conventions, feel free to add your own.
alias mecee='mvnrun eclipse:clean eclipse:eclipse $@' alias meceedsdj='mvnrun eclipse:clean eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true$@' alias mciecee='mvnrun clean install eclipse:clean eclipse:eclipse $@' alias mcistecee='mvnrun clean install -Dmaven.test.skip=true eclipse:clean eclipse:eclipse $@' alias mci='mvnrun clean install' alias mcist='mvnrun clean install -Dmaven.test.skip=true $@' alias mt='mvnrun test $@' alias mc='mvnrun clean $@' alias mct='mvnrun clean test $@' alias mist='mvnrun install -Dmaven.test.skip=true $@' alias mtd='mvnrun tomcat:deploy $@' alias msttd='mvnrun tomcat:deploy -Dmaven.test.skip=true $@' alias mtr='mvnrun tomcat:redeploy $@' alias msttr='mvnrun tomcat:redeploy -Dmaven.test.skip=true $@ ' alias mtu='mvnrun tomcat:undeploy $@' alias mtcr='mvnrun tomcat:run $@' alias mjr='mvnrun jetty:run $@' alias mdr='mvnrun project-info-reports:dependencies' alias mda='mvnrun dependency:analyze'
 
 
No comments:
Post a Comment