mvn.plugin.zsh 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295
  1. # mvn-color based on https://gist.github.com/1027800
  2. BOLD=$(tput bold)
  3. UNDERLINE_ON=$(tput smul)
  4. UNDERLINE_OFF=$(tput rmul)
  5. TEXT_BLACK=$(tput setaf 0)
  6. TEXT_RED=$(tput setaf 1)
  7. TEXT_GREEN=$(tput setaf 2)
  8. TEXT_YELLOW=$(tput setaf 3)
  9. TEXT_BLUE=$(tput setaf 4)
  10. TEXT_MAGENTA=$(tput setaf 5)
  11. TEXT_CYAN=$(tput setaf 6)
  12. TEXT_WHITE=$(tput setaf 7)
  13. BACKGROUND_BLACK=$(tput setab 0)
  14. BACKGROUND_RED=$(tput setab 1)
  15. BACKGROUND_GREEN=$(tput setab 2)
  16. BACKGROUND_YELLOW=$(tput setab 3)
  17. BACKGROUND_BLUE=$(tput setab 4)
  18. BACKGROUND_MAGENTA=$(tput setab 5)
  19. BACKGROUND_CYAN=$(tput setab 6)
  20. BACKGROUND_WHITE=$(tput setab 7)
  21. RESET_FORMATTING=$(tput sgr0)
  22. # if found an executable ./mvnw file execute it otherwise execute orignal mvn
  23. mvn-or-mvnw() {
  24. if [ -x ./mvnw ] ; then
  25. echo "executing mvnw instead of mvn"
  26. ./mvnw "$@";
  27. else
  28. mvn "$@";
  29. fi
  30. }
  31. # Wrapper function for Maven's mvn command.
  32. mvn-color() {
  33. (
  34. # Filter mvn output using sed. Before filtering set the locale to C, so invalid characters won't break some sed implementations
  35. unset LANG
  36. LC_CTYPE=C mvn "$@" | sed -e "s/\(\[INFO\]\)\(.*\)/${TEXT_BLUE}${BOLD}\1${RESET_FORMATTING}\2/g" \
  37. -e "s/\(\[INFO\]\ BUILD SUCCESSFUL\)/${BOLD}${TEXT_GREEN}\1${RESET_FORMATTING}/g" \
  38. -e "s/\(\[WARNING\]\)\(.*\)/${BOLD}${TEXT_YELLOW}\1${RESET_FORMATTING}\2/g" \
  39. -e "s/\(\[ERROR\]\)\(.*\)/${BOLD}${TEXT_RED}\1${RESET_FORMATTING}\2/g" \
  40. -e "s/Tests run: \([^,]*\), Failures: \([^,]*\), Errors: \([^,]*\), Skipped: \([^,]*\)/${BOLD}${TEXT_GREEN}Tests run: \1${RESET_FORMATTING}, Failures: ${BOLD}${TEXT_RED}\2${RESET_FORMATTING}, Errors: ${BOLD}${TEXT_RED}\3${RESET_FORMATTING}, Skipped: ${BOLD}${TEXT_YELLOW}\4${RESET_FORMATTING}/g"
  41. # Make sure formatting is reset
  42. echo -ne "${RESET_FORMATTING}"
  43. )
  44. }
  45. # Override the mvn command with the colorized one.
  46. #alias mvn="mvn-color"
  47. # either use orignal mvn oder the mvn wrapper
  48. alias mvn="mvn-or-mvnw"
  49. # aliases
  50. alias mvncini='mvn clean initialize'
  51. alias mvncie='mvn clean install eclipse:eclipse'
  52. alias mvnci='mvn clean install'
  53. alias mvncp='mvn clean package'
  54. alias mvncist='mvn clean install -DskipTests'
  55. alias mvncisto='mvn clean install -DskipTests --offline'
  56. alias mvne='mvn eclipse:eclipse'
  57. alias mvnce='mvn clean eclipse:clean eclipse:eclipse'
  58. alias mvncv='mvn clean verify'
  59. alias mvnd='mvn deploy'
  60. alias mvnp='mvn package'
  61. alias mvnc='mvn clean'
  62. alias mvncom='mvn compile'
  63. alias mvnct='mvn clean test'
  64. alias mvnt='mvn test'
  65. alias mvnag='mvn archetype:generate'
  66. alias mvn-updates='mvn versions:display-dependency-updates'
  67. alias mvntc7='mvn tomcat7:run'
  68. alias mvntc='mvn tomcat:run'
  69. alias mvnjetty='mvn jetty:run'
  70. alias mvnboot='mvn spring-boot:run'
  71. alias mvndt='mvn dependency:tree'
  72. alias mvns='mvn site'
  73. alias mvnsrc='mvn dependency:sources'
  74. alias mvndocs='mvn dependency:resolve -Dclassifier=javadoc'
  75. function listMavenCompletions {
  76. reply=(
  77. # common lifecycle
  78. clean initialize process-resources compile process-test-resources test-compile test integration-test package verify install deploy site
  79. # common plugins
  80. deploy failsafe install site surefire checkstyle javadoc jxr pmd ant antrun archetype assembly dependency enforcer gpg help release repository source eclipse idea jetty cargo jboss tomcat tomcat6 tomcat7 exec versions war ear ejb android scm buildnumber nexus repository sonar license hibernate3 liquibase flyway gwt
  81. # deploy
  82. deploy:deploy-file
  83. # failsafe
  84. failsafe:integration-test failsafe:verify
  85. # install
  86. install:install-file install:help
  87. # site
  88. site:site site:deploy site:run site:stage site:stage-deploy site:attach-descriptor site:jar site:effective-site
  89. # surefire
  90. surefire:test
  91. # checkstyle
  92. checkstyle:checkstyle checkstyle:check checkstyle:checkstyle-aggregate
  93. # javadoc
  94. javadoc:javadoc javadoc:test-javadoc javadoc:javadoc-no-fork javadoc:test-javadoc-no-fork javadoc:aggregate javadoc:test-aggregate javadoc:jar javadoc:test-jar javadoc:aggregate-jar javadoc:test-aggregate-jar javadoc:fix javadoc:test-fix javadoc:resource-bundle javadoc:test-resource-bundle
  95. # jxr
  96. jxr:jxr jxr:aggregate jxr:test-jxr jxr:test-aggregate
  97. # pmd
  98. pmd:pmd pmd:cpd pmd:check pmd:cpd-check
  99. # ant
  100. ant:ant ant:clean
  101. # antrun
  102. antrun:run
  103. # archetype
  104. archetype:generate archetype:create-from-project archetype:crawl
  105. # assembly
  106. assembly:single assembly:assembly
  107. # dependency
  108. dependency:analyze dependency:analyze-dep-mgt dependency:analyze-only dependency:analyze-report dependency:analyze-duplicate dependency:build-classpath dependency:copy dependency:copy-dependencies dependency:display-ancestors dependency:get dependency:go-offline dependency:list dependency:list-repositories dependency:properties dependency:purge-local-repository dependency:resolve dependency:resolve-plugins dependency:sources dependency:tree dependency:unpack dependency:unpack-dependencies
  109. # enforcer
  110. enforcer:enforce enforcer:display-info
  111. # gpg
  112. gpg:sign gpg:sign-and-deploy-file
  113. # help
  114. help:active-profiles help:all-profiles help:describe help:effective-pom help:effective-settings help:evaluate help:expressions help:system
  115. # release
  116. release:clean release:prepare release:prepare-with-pom release:rollback release:perform release:stage release:branch release:update-versions
  117. # jgitflow
  118. jgitflow:feature-start jgitflow:feature-finish jgitflow:release-start jgitflow:release-finish jgitflow:hotfix-start jgitflow:hotfix-finish jgitflow:build-number
  119. # repository
  120. repository:bundle-create repository:bundle-pack
  121. # source
  122. source:aggregate source:jar source:jar-no-fork source:test-jar source:test-jar-no-fork
  123. # eclipse
  124. eclipse:clean eclipse:eclipse
  125. # idea
  126. idea:clean idea:idea
  127. # jetty
  128. jetty:run jetty:run-exploded
  129. # cargo
  130. cargo:start cargo:run cargo:stop cargo:deploy cargo:undeploy cargo:help
  131. # jboss
  132. jboss:start jboss:stop jboss:deploy jboss:undeploy jboss:redeploy
  133. # tomcat
  134. tomcat:start tomcat:stop tomcat:deploy tomcat:undeploy tomcat:redeploy
  135. # tomcat6
  136. tomcat6:run tomcat6:run-war tomcat6:run-war-only tomcat6:stop tomcat6:deploy tomcat6:undeploy
  137. # tomcat7
  138. tomcat7:run tomcat7:run-war tomcat7:run-war-only tomcat7:deploy
  139. # tomee
  140. tomee:run tomee:run-war tomee:run-war-only tomee:stop tomee:deploy tomee:undeploy
  141. # spring-boot
  142. spring-boot:run spring-boot:repackage
  143. # exec
  144. exec:exec exec:java
  145. # versions
  146. versions:display-dependency-updates versions:display-plugin-updates versions:display-property-updates versions:update-parent versions:update-properties versions:update-child-modules versions:lock-snapshots versions:unlock-snapshots versions:resolve-ranges versions:set versions:use-releases versions:use-next-releases versions:use-latest-releases versions:use-next-snapshots versions:use-latest-snapshots versions:use-next-versions versions:use-latest-versions versions:commit versions:revert
  147. # scm
  148. scm:add scm:bootstrap scm:branch scm:changelog scm:check-local-modification scm:checkin scm:checkout scm:diff scm:edit scm:export scm:list scm:remove scm:status scm:tag scm:unedit scm:update scm:update-subprojects scm:validate
  149. # buildnumber
  150. buildnumber:create buildnumber:create-timestamp buildnumber:help buildnumber:hgchangeset
  151. # war
  152. war:war war:exploded war:inplace war:manifest
  153. # ear
  154. ear:ear ear:generate-application-xml
  155. # ejb
  156. ejb:ejb
  157. # android
  158. android:apk android:apklib android:deploy android:deploy-dependencies android:dex android:emulator-start android:emulator-stop android:emulator-stop-all android:generate-sources android:help android:instrument android:manifest-update android:pull android:push android:redeploy android:run android:undeploy android:unpack android:version-update android:zipalign android:devices
  159. # nexus
  160. nexus:staging-list nexus:staging-close nexus:staging-drop nexus:staging-release nexus:staging-build-promotion nexus:staging-profiles-list nexus:settings-download
  161. # repository
  162. repository:bundle-create repository:bundle-pack repository:help
  163. # sonar
  164. sonar:sonar
  165. # license
  166. license:format license:check
  167. # hibernate3
  168. hibernate3:hbm2ddl hibernate3:help
  169. # liquibase
  170. liquibase:changelogSync liquibase:changelogSyncSQL liquibase:clearCheckSums liquibase:dbDoc liquibase:diff liquibase:dropAll liquibase:help liquibase:migrate liquibase:listLocks liquibase:migrateSQL liquibase:releaseLocks liquibase:rollback liquibase:rollbackSQL liquibase:status liquibase:tag liquibase:update liquibase:updateSQL liquibase:updateTestingRollback
  171. # flyway
  172. flyway:clean flyway:history flyway:init flyway:migrate flyway:status flyway:validate
  173. # gwt
  174. gwt:browser gwt:clean gwt:compile gwt:compile-report gwt:css gwt:debug gwt:eclipse gwt:eclipseTest gwt:generateAsync gwt:help gwt:i18n gwt:mergewebxml gwt:resources gwt:run gwt:sdkInstall gwt:source-jar gwt:soyc gwt:test
  175. # asciidoctor
  176. asciidoctor:process-asciidoc asciidoctor:auto-refresh asciidoctor:http asciidoctor:zip
  177. # compiler
  178. compiler:compile compiler:testCompile
  179. # resources
  180. resources:resources resources:testResources resources:copy-resources
  181. # verifier
  182. verifier:verify
  183. # jar
  184. jar:jar jar:test-jar
  185. # rar
  186. rar:rar
  187. # acr
  188. acr:acr
  189. # shade
  190. shade:shade
  191. # changelog
  192. changelog:changelog changelog:dev-activity changelog:file-activity
  193. # changes
  194. changes:announcement-mail changes:announcement-generate changes:changes-check changes:changes-validate changes:changes-report changes:jira-report changes:trac-report changes:github-report
  195. # doap
  196. doap:generate
  197. # docck
  198. docck:check
  199. # jdeps
  200. jdeps:jdkinternals jdeps:test-jdkinternals
  201. # linkcheck
  202. linkcheck:linkcheck
  203. # project-info-reports
  204. project-info-reports:cim project-info-reports:dependencies project-info-reports:dependency-convergence project-info-reports:dependency-info project-info-reports:dependency-management project-info-reports:distribution-management project-info-reports:help project-info-reports:index project-info-reports:issue-tracking project-info-reports:license project-info-reports:mailing-list project-info-reports:modules project-info-reports:plugin-management project-info-reports:plugins project-info-reports:project-team project-info-reports:scm project-info-reports:summary
  205. # surefire-report
  206. surefire-report:failsafe-report-only surefire-report:report surefire-report:report-only
  207. # invoker
  208. invoker:install invoker:integration-test invoker:verify invoker:run
  209. # jarsigner
  210. jarsigner:sign jarsigner:verify
  211. # patch
  212. patch:apply
  213. # pdf
  214. pdf:pdf
  215. # plugin
  216. plugin:descriptor plugin:report plugin:updateRegistry plugin:addPluginArtifactMetadata plugin:helpmojo
  217. # remote-resources
  218. remote-resources:bundle remote-resources:process
  219. # scm-publish
  220. scm-publish:help scm-publish:publish-scm scm-publish:scmpublish
  221. # stage
  222. stage:copy
  223. # toolchain
  224. toolchain:toolchain
  225. # options
  226. "-Dmaven.test.skip=true" -DskipTests -DskipITs -Dmaven.surefire.debug -DenableCiProfile "-Dpmd.skip=true" "-Dcheckstyle.skip=true" "-Dtycho.mode=maven" "-Dmaven.test.failure.ignore=true" "-DgroupId=" "-DartifactId=" "-Dversion=" "-Dpackaging=jar" "-Dfile="
  227. # arguments
  228. -am --also-make
  229. -amd --also-make-dependents-am
  230. -B --batch-mode
  231. -b --builder
  232. -C --strict-checksums
  233. -c --lax-checksums
  234. -cpu --check-plugin-updates
  235. -D --define
  236. -e --errors
  237. -emp --encrypt-master-password
  238. -ep --encrypt-password
  239. -f --file
  240. -fae --fail-at-end
  241. -ff --fail-fast
  242. -fn --fail-never
  243. -gs --global-settings
  244. -gt --global-toolchains
  245. -h --help
  246. -l --log-file
  247. -llr --legacy-local-repository
  248. -N --non-recursive
  249. -npr --no-plugin-registry
  250. -npu --no-plugin-updates
  251. -nsu --no-snapshot-updates
  252. -o --offline
  253. -P --activate-profiles
  254. -pl --projects
  255. -q --quiet
  256. -rf --resume-from
  257. -s --settings
  258. -t --toolchains
  259. -T --threads
  260. -U --update-snapshots
  261. -up --update-plugins
  262. -v --version
  263. -V --show-version
  264. -X --debug
  265. cli:execute cli:execute-phase
  266. archetype:generate generate-sources
  267. cobertura:cobertura
  268. -Dtest=$(if [ -d ./src/test/java ] ; then find ./src/test/java -type f -name '*.java' | grep -v svn | sed 's?.*/\([^/]*\)\..*?-Dtest=\1?' ; fi)
  269. -Dit.test=$(if [ -d ./src/test/java ] ; then find ./src/test/java -type f -name '*.java' | grep -v svn | sed 's?.*/\([^/]*\)\..*?-Dit.test=\1?' ; fi)
  270. );
  271. }
  272. compctl -K listMavenCompletions mvn mvnw
  273. compctl -K listMavenCompletions mvn-color
  274. compctl -K listMavenCompletions mvn-or-mvnw