mvn.plugin.zsh 13 KB

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