mvn.plugin.zsh 13 KB

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