Maven Tips - Lunch break slides

766 views

Published on

Quick tips and tricks done @SRMvision during a lunch break

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
766
On SlideShare
0
From Embeds
0
Number of Embeds
12
Actions
Shares
0
Downloads
6
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Maven Tips - Lunch break slides

  1. 1. Maven Tips & Tricks Brown Bag Lunch - January 2013 1 Cedric Gatay - c.gatay@srmvision.com Pulling ITSM togetherjeudi 17 janvier 13
  2. 2. Lifecycle 1. process-resources 2. compile 3. process-test-resources 4. test-compile 5. test 6. package 7. install 8. deploy 2 Cedric Gatay - c.gatay@srmvision.com Pulling ITSM togetherjeudi 17 janvier 13
  3. 3. Search engines • http://search.maven.org/ • search through Maven Central • http://mvnrepository.com/ • http://nexus.srm • in house repository 3 Cedric Gatay - c.gatay@srmvision.com Pulling ITSM togetherjeudi 17 janvier 13
  4. 4. Artifacts naming • groupId:artifactId:[classifier:]type:version 4 Cedric Gatay - c.gatay@srmvision.com Pulling ITSM togetherjeudi 17 janvier 13
  5. 5. Artifacts naming • groupId:artifactId:[classifier:]type:version • follows package naming convention • reverse FQDN 5 Cedric Gatay - c.gatay@srmvision.com Pulling ITSM togetherjeudi 17 janvier 13
  6. 6. Artifacts naming • groupId:artifactId:[classifier:]type:version • short explicit names are the best 6 Cedric Gatay - c.gatay@srmvision.com Pulling ITSM togetherjeudi 17 janvier 13
  7. 7. Artifacts naming • groupId:artifactId:[classifier:]type:version • optional • allows to specify special versions 7 Cedric Gatay - c.gatay@srmvision.com Pulling ITSM togetherjeudi 17 janvier 13
  8. 8. Artifacts naming • groupId:artifactId:[classifier:]type:version • one of jar,pom,war,ear... • determines the nature of the dependency 8 Cedric Gatay - c.gatay@srmvision.com Pulling ITSM togetherjeudi 17 janvier 13
  9. 9. Artifacts naming • groupId:artifactId:[classifier:]type:version • version number (dot formatted) • -SNAPSHOT are in development dep. 9 Cedric Gatay - c.gatay@srmvision.com Pulling ITSM togetherjeudi 17 janvier 13
  10. 10. Project inheritance • Allows to group common configuration • repositories • codestyle... • Ease project understanding 10 Cedric Gatay - c.gatay@srmvision.com Pulling ITSM togetherjeudi 17 janvier 13
  11. 11. Dependencies • Scopes • compile (default) : required for the app • runtime : only necessary at runtime • provided : available by the container • test : required for testing phase • system : absolute path (avoid this) 11 Cedric Gatay - c.gatay@srmvision.com Pulling ITSM togetherjeudi 17 janvier 13
  12. 12. Dependencies • Don’t Repeat Yourself • Make your dependencies consistent 12 Cedric Gatay - c.gatay@srmvision.com Pulling ITSM togetherjeudi 17 janvier 13
  13. 13. Dependencies • Super POM does the dependenciesManagement • <groupId>, <artifactId>, <version>, <scope>, <exclusions> 13 Cedric Gatay - c.gatay@srmvision.com Pulling ITSM togetherjeudi 17 janvier 13
  14. 14. 14 Cedric Gatay - c.gatay@srmvision.com Pulling ITSM togetherjeudi 17 janvier 13
  15. 15. Dependencies • POMs inherit the Super POM • only use <dependencies> • <groupId>, <artifactId> • specific <scope> 15 Cedric Gatay - c.gatay@srmvision.com Pulling ITSM togetherjeudi 17 janvier 13
  16. 16. 16 Cedric Gatay - c.gatay@srmvision.com Pulling ITSM togetherjeudi 17 janvier 13
  17. 17. Dependencies • Plugins follow the same rule • <pluginManagement> in Super POM • common <configuration> Always fix plugins’ versions 17 Cedric Gatay - c.gatay@srmvision.com Pulling ITSM togetherjeudi 17 janvier 13
  18. 18. Dependencies • Plugins follow the same rule • <plugin> in children • specific <configuration> 18 Cedric Gatay - c.gatay@srmvision.com Pulling ITSM togetherjeudi 17 janvier 13
  19. 19. Properties • Ease dependency upgrade • only one value to update • See all dependencies versions at once 19 Cedric Gatay - c.gatay@srmvision.com Pulling ITSM togetherjeudi 17 janvier 13
  20. 20. Troubleshoot • Debug • mvn -X • Work offline • mvn -o | --offline 20 Cedric Gatay - c.gatay@srmvision.com Pulling ITSM togetherjeudi 17 janvier 13
  21. 21. Troubleshoot • Get the computed POM • mvn help:effective-pom • Get the dependency tree • mvn dependency:tree 21 Cedric Gatay - c.gatay@srmvision.com Pulling ITSM togetherjeudi 17 janvier 13
  22. 22. Clean local repository • wget https://raw.github.com/CedricGatay/small- scripts/master/groovy/CleanDir.groovy • groovy CleanDir.groovy • groovy -DdryRun=false CleanDir.groovy 22 Cedric Gatay - c.gatay@srmvision.com Pulling ITSM togetherjeudi 17 janvier 13
  23. 23. Resources • Apache Maven http://maven.apache.org/ • Maven dependency plugin http://maven.apache.org/plugins/maven-dependency-plugin/ • CleanDir groovy script https://raw.github.com/jettro/small-scripts/master/groovy/CleanDir.groovy 23 Cedric Gatay - c.gatay@srmvision.com Pulling ITSM togetherjeudi 17 janvier 13

×