mvn.plugin.zsh 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297
  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 mvncvst='mvn clean verify -DskipTests'
  60. alias mvnd='mvn deploy'
  61. alias mvncd='mvn clean deploy'
  62. alias mvnp='mvn package'
  63. alias mvnc='mvn clean'
  64. alias mvncom='mvn compile'
  65. alias mvnct='mvn clean test'
  66. alias mvnt='mvn test'
  67. alias mvnag='mvn archetype:generate'
  68. alias mvn-updates='mvn versions:display-dependency-updates'
  69. alias mvntc7='mvn tomcat7:run'
  70. alias mvntc='mvn tomcat:run'
  71. alias mvnjetty='mvn jetty:run'
  72. alias mvnboot='mvn spring-boot:run'
  73. alias mvndt='mvn dependency:tree'
  74. alias mvns='mvn site'
  75. alias mvnsrc='mvn dependency:sources'
  76. alias mvndocs='mvn dependency:resolve -Dclassifier=javadoc'
  77. function listMavenCompletions {
  78. reply=(
  79. # common lifecycle
  80. clean initialize process-resources compile process-test-resources test-compile test integration-test package verify install deploy site
  81. # common plugins
  82. 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
  83. # deploy
  84. deploy:deploy-file
  85. # failsafe
  86. failsafe:integration-test failsafe:verify
  87. # install
  88. install:install-file install:help
  89. # site
  90. site:site site:deploy site:run site:stage site:stage-deploy site:attach-descriptor site:jar site:effective-site
  91. # surefire
  92. surefire:test
  93. # checkstyle
  94. checkstyle:checkstyle checkstyle:check checkstyle:checkstyle-aggregate
  95. # javadoc
  96. 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
  97. # jxr
  98. jxr:jxr jxr:aggregate jxr:test-jxr jxr:test-aggregate
  99. # pmd
  100. pmd:pmd pmd:cpd pmd:check pmd:cpd-check
  101. # ant
  102. ant:ant ant:clean
  103. # antrun
  104. antrun:run
  105. # archetype
  106. archetype:generate archetype:create-from-project archetype:crawl
  107. # assembly
  108. assembly:single assembly:assembly
  109. # dependency
  110. 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
  111. # enforcer
  112. enforcer:enforce enforcer:display-info
  113. # gpg
  114. gpg:sign gpg:sign-and-deploy-file
  115. # help
  116. help:active-profiles help:all-profiles help:describe help:effective-pom help:effective-settings help:evaluate help:expressions help:system
  117. # release
  118. release:clean release:prepare release:prepare-with-pom release:rollback release:perform release:stage release:branch release:update-versions
  119. # jgitflow
  120. jgitflow:feature-start jgitflow:feature-finish jgitflow:release-start jgitflow:release-finish jgitflow:hotfix-start jgitflow:hotfix-finish jgitflow:build-number
  121. # repository
  122. repository:bundle-create repository:bundle-pack
  123. # source
  124. source:aggregate source:jar source:jar-no-fork source:test-jar source:test-jar-no-fork
  125. # eclipse
  126. eclipse:clean eclipse:eclipse
  127. # idea
  128. idea:clean idea:idea
  129. # jetty
  130. jetty:run jetty:run-exploded
  131. # cargo
  132. cargo:start cargo:run cargo:stop cargo:deploy cargo:undeploy cargo:help
  133. # jboss
  134. jboss:start jboss:stop jboss:deploy jboss:undeploy jboss:redeploy
  135. # tomcat
  136. tomcat:start tomcat:stop tomcat:deploy tomcat:undeploy tomcat:redeploy
  137. # tomcat6
  138. tomcat6:run tomcat6:run-war tomcat6:run-war-only tomcat6:stop tomcat6:deploy tomcat6:undeploy
  139. # tomcat7
  140. tomcat7:run tomcat7:run-war tomcat7:run-war-only tomcat7:deploy
  141. # tomee
  142. tomee:run tomee:run-war tomee:run-war-only tomee:stop tomee:deploy tomee:undeploy
  143. # spring-boot
  144. spring-boot:run spring-boot:repackage
  145. # exec
  146. exec:exec exec:java
  147. # versions
  148. 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
  149. # scm
  150. 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
  151. # buildnumber
  152. buildnumber:create buildnumber:create-timestamp buildnumber:help buildnumber:hgchangeset
  153. # war
  154. war:war war:exploded war:inplace war:manifest
  155. # ear
  156. ear:ear ear:generate-application-xml
  157. # ejb
  158. ejb:ejb
  159. # android
  160. 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
  161. # nexus
  162. nexus:staging-list nexus:staging-close nexus:staging-drop nexus:staging-release nexus:staging-build-promotion nexus:staging-profiles-list nexus:settings-download
  163. # repository
  164. repository:bundle-create repository:bundle-pack repository:help
  165. # sonar
  166. sonar:sonar
  167. # license
  168. license:format license:check
  169. # hibernate3
  170. hibernate3:hbm2ddl hibernate3:help
  171. # liquibase
  172. 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
  173. # flyway
  174. flyway:clean flyway:history flyway:init flyway:migrate flyway:status flyway:validate
  175. # gwt
  176. 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
  177. # asciidoctor
  178. asciidoctor:process-asciidoc asciidoctor:auto-refresh asciidoctor:http asciidoctor:zip
  179. # compiler
  180. compiler:compile compiler:testCompile
  181. # resources
  182. resources:resources resources:testResources resources:copy-resources
  183. # verifier
  184. verifier:verify
  185. # jar
  186. jar:jar jar:test-jar
  187. # rar
  188. rar:rar
  189. # acr
  190. acr:acr
  191. # shade
  192. shade:shade
  193. # changelog
  194. changelog:changelog changelog:dev-activity changelog:file-activity
  195. # changes
  196. changes:announcement-mail changes:announcement-generate changes:changes-check changes:changes-validate changes:changes-report changes:jira-report changes:trac-report changes:github-report
  197. # doap
  198. doap:generate
  199. # docck
  200. docck:check
  201. # jdeps
  202. jdeps:jdkinternals jdeps:test-jdkinternals
  203. # linkcheck
  204. linkcheck:linkcheck
  205. # project-info-reports
  206. 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
  207. # surefire-report
  208. surefire-report:failsafe-report-only surefire-report:report surefire-report:report-only
  209. # invoker
  210. invoker:install invoker:integration-test invoker:verify invoker:run
  211. # jarsigner
  212. jarsigner:sign jarsigner:verify
  213. # patch
  214. patch:apply
  215. # pdf
  216. pdf:pdf
  217. # plugin
  218. plugin:descriptor plugin:report plugin:updateRegistry plugin:addPluginArtifactMetadata plugin:helpmojo
  219. # remote-resources
  220. remote-resources:bundle remote-resources:process
  221. # scm-publish
  222. scm-publish:help scm-publish:publish-scm scm-publish:scmpublish
  223. # stage
  224. stage:copy
  225. # toolchain
  226. toolchain:toolchain
  227. # options
  228. "-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="
  229. # arguments
  230. -am --also-make
  231. -amd --also-make-dependents-am
  232. -B --batch-mode
  233. -b --builder
  234. -C --strict-checksums
  235. -c --lax-checksums
  236. -cpu --check-plugin-updates
  237. -D --define
  238. -e --errors
  239. -emp --encrypt-master-password
  240. -ep --encrypt-password
  241. -f --file
  242. -fae --fail-at-end
  243. -ff --fail-fast
  244. -fn --fail-never
  245. -gs --global-settings
  246. -gt --global-toolchains
  247. -h --help
  248. -l --log-file
  249. -llr --legacy-local-repository
  250. -N --non-recursive
  251. -npr --no-plugin-registry
  252. -npu --no-plugin-updates
  253. -nsu --no-snapshot-updates
  254. -o --offline
  255. -P --activate-profiles
  256. -pl --projects
  257. -q --quiet
  258. -rf --resume-from
  259. -s --settings
  260. -t --toolchains
  261. -T --threads
  262. -U --update-snapshots
  263. -up --update-plugins
  264. -v --version
  265. -V --show-version
  266. -X --debug
  267. cli:execute cli:execute-phase
  268. archetype:generate generate-sources
  269. cobertura:cobertura
  270. -Dtest=$(if [ -d ./src/test/java ] ; then find ./src/test/java -type f -name '*.java' | grep -v svn | sed 's?.*/\([^/]*\)\..*?-Dtest=\1?' ; fi)
  271. -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)
  272. );
  273. }
  274. compctl -K listMavenCompletions mvn mvnw
  275. compctl -K listMavenCompletions mvn-color
  276. compctl -K listMavenCompletions mvn-or-mvnw