Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

5 Reasons Why Maven Sux


Published on

5 Reasons Why Maven Sux
JavaOne CommunityOne 2008

Published in: Technology, Business
  • Login to see the comments

5 Reasons Why Maven Sux

  1. 1. <ul><ul><li>5 Reasons Why </li></ul></ul><ul><ul><li>Maven Sux </li></ul></ul><ul><ul><li>Carlos Sanchez </li></ul></ul><ul><ul><li>CommunityOne @ JavaOne </li></ul></ul><ul><ul><li>May 5, 2008 </li></ul></ul>
  2. 2. About Me <ul><ul><li>During the day </li></ul></ul><ul><ul><li>Director at Exist Global </li></ul></ul><ul><ul><li>At night </li></ul></ul><ul><ul><li>Member of Apache Maven PMC </li></ul></ul><ul><ul><li>Committer at the Eclipse Foundation </li></ul></ul>
  3. 3. #1 Losing control
  4. 4. <project> <modelVersion> 4.0.0 </modelVersion> <groupId> org.acme </groupId> <artifactId> acmeapp </artifactId> <version> 1.0-SNAPSHOT </version> <dependencies> <dependency> <groupId> org.hibernate </groupId> <artifactId> hibernate </artifactId> <version> </version> </dependency> <dependency> <groupId> junit </groupId> <artifactId> junit </artifactId> <version> 3.8.1 </version> <scope> test </scope> </dependency> </dependencies> </project>
  5. 5. section .text global _start ;must be declared for linker (ld) _start: ;tell linker entry point mov edx,len ;message length mov ecx,msg ;message to write mov ebx,1 ;file descriptor (stdout) mov eax,4 ;system call number (sys_write) int 0x80 ;call kernel mov eax,1 ;system call number (sys_exit) int 0x80 ;call kernel section .data msg db 'Hello, world!',0xa ;our dear string len equ $ - msg ;length of our dear string
  6. 6. #2 Repository madness
  7. 7. <project> <modelVersion> 4.0.0 </modelVersion> <groupId> org.acme </groupId> <artifactId> acmeapp </artifactId> <version> 1.0-SNAPSHOT </version> <dependencies> <dependency> <groupId> org.hibernate </groupId> <artifactId> hibernate </artifactId> <version> 3.2.7 </version> </dependency> <dependency> <groupId> junit </groupId> <artifactId> junit </artifactId> <version> 3.8.1 </version> <scope> test </scope> </dependency> </dependencies> </project>
  8. 9. myproject/lib hibernate.jar myotherproject/lib hibernate.jar
  9. 10. upgrading is so easy
  10. 11. productivity!
  11. 12. Oh, you forgot ASM or CGLIB or
  12. 13. #3 Snapshot downloads
  13. 14. <project> <modelVersion> 4.0.0 </modelVersion> <groupId> org.acme </groupId> <artifactId> acmeapp </artifactId> <version> 1.0-SNAPSHOT </version> <dependencies> <dependency> <groupId> org.acme </groupId> <artifactId> mylib </artifactId> <version> 1.0-SNAPSHOT </version> </dependency> </dependencies> </project>
  14. 15. Build mylib.jar
  15. 16. Send mylib.jar by email
  16. 17. Receive mylib.jar
  17. 18. Copy mylib.jar to myproject/lib
  18. 19. Copy mylib.jar to myotherproject/lib
  19. 20. Fix a bug ... shit happens
  20. 21. Build mylib.jar ... don't use versions, waste of time
  21. 22. Send mylib.jar by email
  22. 23. Receive mylib.jar
  23. 24. Copy mylib.jar to myproject/lib
  24. 26. you screwed mylib myotherproject doesn't work
  25. 27. #4 Reports
  26. 28. mvn checkstyle:checkstyle
  27. 29. New things to worry about
  28. 30. Real men write perfect code
  29. 31. any resemblance to existing persons is based on experience
  30. 32. Thanks <ul><li>[email_address] </li></ul><ul><ul><li> </li></ul></ul>
  31. 33. Credits Matrix code : David Asch That was easy! : spackletoe Caution: Ice Fall Hazard : Jeff Wilcox Smiling Girl : Dey Gay Pride : Boss Tweed Magic! : Kaptain Kobold