SlideShare a Scribd company logo
v




 Simplify your external
dependency management
Simplify your ext. dependency management

 About me

  Stephan Hochdörfer, bitExpert AG
  Department Manager Research Labs
  enjoying PHP since 1999
  S.Hochdoerfer@bitExpert.de
  @shochdoerfer
Simplify your ext. dependency management

 Dependencies?
Simplify your ext. dependency management

 Dependencies?




 internal                                   external
 Dependencies                          Dependencies
Simplify your ext. dependency management

 Dependencies?
                                            external
                                       Dependencies

                                            Extensions
                                           Systemtools
                                           Frameworks
                                                  Libs
Simplify your ext. dependency management




 Our first project....
Simplify your ext. dependency management

 Our first project....




                             +
Simplify your ext. dependency management

 Our first project – the structure

 yourpoject
    |-application
    |-library
    |---Facebook
    |---Zend
    |-public
    |---js
    |---css
    |-tests
Simplify your ext. dependency management




 Maintenance nightmare!
Simplify your ext. dependency management



 Version control, anyone?
Simplify your ext. dependency management



 Subversion – svn:externals
Simplify your ext. dependency management




 Git - Submodules
Simplify your ext. dependency management


 Git - Subtree
Simplify your ext. dependency management

 Recap




          No overview of dependency
                 configuration
Simplify your ext. dependency management

 Recap




    Externals must be of the same type
             as the repository!
Simplify your ext. dependency management

 Recap




     Commiting to Externals is possible!
Simplify your ext. dependency management

 Insight




              You cannot control
           dependencies with a VCS!
Simplify your ext. dependency management

 Insight




             A VCS is not made for
           dependency management!
Simplify your ext. dependency management



 Requirements first!
Simplify your ext. dependency management



 Do not hide dependency metadata!
Simplify your ext. dependency management



 Transitive dependencies
Simplify your ext. dependency management




 Do not reinvent the wheel




                               v
Simplify your ext. dependency management




 Separation from VCS
Simplify your ext. dependency management




 Mind change: Build process needed!
Simplify your ext. dependency management




 Step 1: Building the build
Simplify your ext. dependency management




 Step 2: Package the software
Simplify your ext. dependency management




 Step 3: Deliver the software
Simplify your ext. dependency management

 Build automation
Simplify your ext. dependency management

 Build automation
Simplify your ext. dependency management

 Build automation with Phing
 <?xml version="1.0" encoding="UTF-8"?>
 <project name="MyProject" default="build">

     <target name="prepare">
         <echo msg="Creating dir ./build" />
         <mkdir dir="./build" />
     </target>

     <target name="build" depends="prepare">
         <echo msg="Copying files..." />
         <copy file="./info.php"
            tofile="./build/info.php" />
     </target>
 </project>
Simplify your ext. dependency management

 Build automation with pear
Simplify your ext. dependency management

 Build automation with pear pantr




    pantr = project-based PEAR installer
Simplify your ext. dependency management

 Build automation with pantr




                1. pantr pear:init lib
Simplify your ext. dependency management

 Build automation with pantr




        2. pantr pear:channel-discover
              pear.pagosoft.com
Simplify your ext. dependency management

 Build automation with pantr




        3. pantr pear:install pgs/parser
Simplify your ext. dependency management

 Packaging
Simplify your ext. dependency management



 *nix packages – 4 steps to enlightenment
Simplify your ext. dependency management

 *nix packages – 4 steps to enlightenment




    1. Create directory yourproject-0.0.1
Simplify your ext. dependency management

 *nix packages – 4 steps to enlightenment




            2. dh_make –createorig -s
Simplify your ext. dependency management

 *nix packages – 4 steps to enlightenment




                  3. Add a Makefile
Simplify your ext. dependency management

 *nix packages – 4 steps to enlightenment

      BINDIR = $(DESTDIR)/usr/bin
      clean:
      install:
        mkdir -p $(BINDIR)
        cp info.php $(BINDIR)
      uninstall:
        rm -f $(BINDIR)/info.php
Simplify your ext. dependency management

 *nix packages – 4 steps to enlightenment




        4. fakeroot debian/rules binary
Simplify your ext. dependency management

 *nix packages – Dependencies?
Simplify your ext. dependency management

 *nix packages – Dependencies?




        Add them to debian/control file
Simplify your ext. dependency management

 *nix packages – Dependencies?
 Source: yourproject
 Section: unknown
 Priority: extra
 Maintainer: Stephan Hochdoerfer
 Build-Depends: debhelper (>= 7.0.50~)
 Standards-Version: 3.8.4

 Package: yourproject
 Architecture: any
 Depends: php5-cgi php5-mysql
 Description: yourproject short description
  long description...
Simplify your ext. dependency management




 PEAR package – 3 steps to enlightenment
Simplify your ext. dependency management

 PEAR package – 3 steps to enlightenment




    1. Create directory yourproject-0.0.1
Simplify your ext. dependency management

 PEAR package – 3 steps to enlightenment




              2. Create package.xml
Simplify your ext. dependency management

 PEAR package – 3 steps to enlightenment
 <?xml version="1.0" encoding="UTF-8"?>
 <package packagerversion="1.8.0" version="2.0">
  <name>Yourapp</name>
  <channel>pear.yourapp.com</channel>
  <summary>Yourapp summary</summary>
  <description>Yourapp description.</description>
  <lead>
   <name>Stephan Hochdoerfer</name>
   <user>sh</user>
   <email>S.Hochdoerfer@bitExpert.de</email>
   <active>yes</active>
  </lead>
  <date>2009-10-18</date>
  <time>16:00:00</time>
  <version>
   <release>0.9.0</release>
Simplify your ext. dependency management

 PEAR package – 3 steps to enlightenment
 <dependencies>
  <required>
   <php>
    <min>5.0.0</min>
   </php>
   <pearinstaller>
    <min>1.4.0</min>
   </pearinstaller>
  </required>
 </dependencies>
 <phprelease />
</package>
Simplify your ext. dependency management

 PEAR package – 3 steps to enlightenment




                   3. pear package
Simplify your ext. dependency management

 How to deliver the packages?
Simplify your ext. dependency management

 How to deliver the packages?




        *nix repository vs. PEAR server
Simplify your ext. dependency management

 How to deliver the packages?




         pearhub, pearfarm, openPear
Simplify your ext. dependency management

 How to deliver the packages?




               PEAR Proxy needed?
Simplify your ext. dependency management




 Missing the glue!
Simplify your ext. dependency management




 Java anyone?
Simplify your ext. dependency management




 Maven – a project management tool
Simplify your ext. dependency management

 Maven




               Goal: Standardization
Simplify your ext. dependency management

 Maven Lifecycle
                       archetype
Simplify your ext. dependency management

 Maven Lifecycle
                       archetype

                                     validate
Simplify your ext. dependency management

 Maven Lifecycle
                       archetype

                                     validate


                                           compile
Simplify your ext. dependency management

 Maven Lifecycle
                       archetype

                                     validate


                                              compile


                                           test
Simplify your ext. dependency management

 Maven Lifecycle
                       archetype

                                       validate


                                              compile


                                           test


                                   package
Simplify your ext. dependency management

 Maven Lifecycle
                       archetype

                                       validate


                                              compile


                                           test


               integration-test    package
Simplify your ext. dependency management

 Maven Lifecycle
                       archetype

                                       validate


                                              compile


          verify                           test


               integration-test    package
Simplify your ext. dependency management

 Maven Lifecycle
                         archetype

                                         validate


       install                                 compile


           verify                           test


                 integration-test    package
Simplify your ext. dependency management

 Maven Lifecycle
                           archetype

                 deploy                    validate


       install                                   compile


           verify                             test


                   integration-test    package
Simplify your ext. dependency management

 Maven - Project Object Model
 <project xmlns="http://maven.apache.org/POM/4.0.0"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
 http://maven.apache.org/maven-v4_0_0.xsd">
    <groupId>com.acme</groupId>
    <artifactId>myproject</artifactId>
    <packaging>jar</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>My project</name>
 </project>
Simplify your ext. dependency management

 Maven - Dependencies
 <dependencies>
    <dependency>
       <groupId>com.zend</groupId>
       <artifactId>framework</artifactId>
       <version>1.11.6-SNAPSHOT</version>
       <type>jar</type>
       <scope>compile</scope>
    </dependency>
 </dependencies>
Simplify your ext. dependency management

 Maven Beginners guide




                   Maven for PHP?
Simplify your ext. dependency management

 Maven Beginners guide




          1. Download & install Maven
Simplify your ext. dependency management

 Maven Beginners guide




           2. Edit settings.xml to add
            PHP for Maven repository
Simplify your ext. dependency management

 Maven Beginners guide
 <pluginRepository>
    <id>release-repo1.php-maven.org</id>
    <name>PHP-Maven 2 Release Repository</name>
    <url>http://repo1.php-maven.org/release</url>
    <releases>
       <enabled>true</enabled>
    </releases>
 </pluginRepository>
Simplify your ext. dependency management

 Maven Beginners guide




         3. Create new Maven project
Simplify your ext. dependency management

 Maven Beginners guide


          mvn archetype:generate 
          -DarchetypeGroupId=org.phpmaven 
          -DarchetypeArtifactId=php5-lib-archetype 
          -DarchetypeVersion=1.1 
          -DgroupId=org.yourproject 
          -DartifactId=appname
Simplify your ext. dependency management

 Maven Beginners guide




              2. Deploy your project
Simplify your ext. dependency management

 Maven Beginners guide




                    mvn deploy
Simplify your ext. dependency management

 Maven Bonus points




                Can act as a proxy!
Simplify your ext. dependency management

 Maven Bonus points




           Plugins, Plugins, Plugins,...
Simplify your ext. dependency management

 Maven Bonus points




       Automatic release management
Simplify your ext. dependency management

 Maven Bonus points




              Automatic deployment
Simplify your ext. dependency management

 Maven Bonus points




                     Build profiles
Simplify your ext. dependency management

 Maven Bonus points




            IDE support, e.g. Eclipse,
                  Netbeans,...
http://joind.in/3232
Simplify your ext. dependency management

 Image Credits

 http://www.sxc.hu/photo/1092493
 http://www.sxc.hu/photo/910278
 http://www.sxc.hu/photo/766748

More Related Content

PDF
CloudBees Toronto Presentation
PPTX
Continuous Deployment Pipeline with maven
PDF
Automated Deployment with Maven - going the whole nine yards
PDF
Maven nutshell
PDF
Dev ops tools and was liberty profile
PDF
Configuration management 101 - A tale of disaster recovery using CFEngine 3
PDF
02. egovFrame Development Environment workshop II en(nexus&ci)
PPTX
CloudBees
CloudBees Toronto Presentation
Continuous Deployment Pipeline with maven
Automated Deployment with Maven - going the whole nine yards
Maven nutshell
Dev ops tools and was liberty profile
Configuration management 101 - A tale of disaster recovery using CFEngine 3
02. egovFrame Development Environment workshop II en(nexus&ci)
CloudBees

What's hot (10)

PDF
Tuscany : Applying OSGi After The Fact
PPT
Best practices for share point solution deployment
PPTX
Release With Maven
PDF
Maven, Eclipse and OSGi Working Together - Carlos Sanchez
PDF
How to Use NDS eDirectory to Secure Apache Web Server for NetWare
PDF
Liferay maven sdk
KEY
Don't touch that server
PPT
Juggling Java EE with Enterprise Apache Maven
PPTX
It camp veeam presentation (no videos)
PDF
02.egovFrame Development Environment workshop I
Tuscany : Applying OSGi After The Fact
Best practices for share point solution deployment
Release With Maven
Maven, Eclipse and OSGi Working Together - Carlos Sanchez
How to Use NDS eDirectory to Secure Apache Web Server for NetWare
Liferay maven sdk
Don't touch that server
Juggling Java EE with Enterprise Apache Maven
It camp veeam presentation (no videos)
02.egovFrame Development Environment workshop I
Ad

Similar to Simplify your external dependency management - DPC11 (20)

PPTX
Learning Maven by Example
PPT
Maven 2 features
PPTX
An Introduction to Maven
PPTX
PDF
P&MSP2012 - Maven
PPTX
Maven 3 New Features
PDF
Apache maven, a software project management tool
PPTX
Maven.pptx
PPTX
Introduction to Maven for beginners and DevOps
PDF
Jdc 2010 - Maven, Intelligent Projects
PPTX
Linuxtag 2012 - continuous delivery - dream to reality
PDF
Java, Eclipse, Maven & JSF tutorial
PDF
Docker presentasjon java bin
PPT
Maven – The build paraphernalia
PDF
maven
PPTX
Continuous Deployment
PPTX
Jenkins advance topic
PDF
Deployit - Overview & concepts
Learning Maven by Example
Maven 2 features
An Introduction to Maven
P&MSP2012 - Maven
Maven 3 New Features
Apache maven, a software project management tool
Maven.pptx
Introduction to Maven for beginners and DevOps
Jdc 2010 - Maven, Intelligent Projects
Linuxtag 2012 - continuous delivery - dream to reality
Java, Eclipse, Maven & JSF tutorial
Docker presentasjon java bin
Maven – The build paraphernalia
maven
Continuous Deployment
Jenkins advance topic
Deployit - Overview & concepts
Ad

More from Stephan Hochdörfer (20)

PDF
Offline. Na und? Strategien für offlinefähige Applikationen in HTML5 - Herbst...
PDF
Phing for power users - frOSCon8
PDF
Offline strategies for HTML5 web applications - frOSCon8
PDF
Offline Strategies for HTML5 Web Applications - oscon13
PDF
Real World Dependency Injection - oscon13
PDF
Dependency Injection in PHP - dwx13
PDF
Offline Strategien für HTML5 Web Applikationen - dwx13
PDF
Your Business. Your Language. Your Code - dpc13
PDF
Phing for power users - dpc_uncon13
PDF
Offline Strategies for HTML5 Web Applications - ipc13
PDF
Offline-Strategien für HTML5 Web Applikationen - wmka
PDF
Offline-Strategien für HTML5 Web Applikationen - bedcon13
PDF
Real World Dependency Injection - phpugffm13
PDF
Testing untestable code - ConFoo13
PDF
A Phing fairy tale - ConFoo13
PDF
Offline strategies for HTML5 web applications - ConFoo13
PDF
Offline-Strategien für HTML5Web Applikationen - WMMRN12
PDF
Testing untestable code - IPC12
PDF
Offline strategies for HTML5 web applications - IPC12
PDF
Große Systeme, lose Kopplung, Spaß bei der Arbeit! - WDC12
Offline. Na und? Strategien für offlinefähige Applikationen in HTML5 - Herbst...
Phing for power users - frOSCon8
Offline strategies for HTML5 web applications - frOSCon8
Offline Strategies for HTML5 Web Applications - oscon13
Real World Dependency Injection - oscon13
Dependency Injection in PHP - dwx13
Offline Strategien für HTML5 Web Applikationen - dwx13
Your Business. Your Language. Your Code - dpc13
Phing for power users - dpc_uncon13
Offline Strategies for HTML5 Web Applications - ipc13
Offline-Strategien für HTML5 Web Applikationen - wmka
Offline-Strategien für HTML5 Web Applikationen - bedcon13
Real World Dependency Injection - phpugffm13
Testing untestable code - ConFoo13
A Phing fairy tale - ConFoo13
Offline strategies for HTML5 web applications - ConFoo13
Offline-Strategien für HTML5Web Applikationen - WMMRN12
Testing untestable code - IPC12
Offline strategies for HTML5 web applications - IPC12
Große Systeme, lose Kopplung, Spaß bei der Arbeit! - WDC12

Simplify your external dependency management - DPC11

  • 1. v Simplify your external dependency management
  • 2. Simplify your ext. dependency management About me  Stephan Hochdörfer, bitExpert AG  Department Manager Research Labs  enjoying PHP since 1999  S.Hochdoerfer@bitExpert.de  @shochdoerfer
  • 3. Simplify your ext. dependency management Dependencies?
  • 4. Simplify your ext. dependency management Dependencies? internal external Dependencies Dependencies
  • 5. Simplify your ext. dependency management Dependencies? external Dependencies Extensions Systemtools Frameworks Libs
  • 6. Simplify your ext. dependency management Our first project....
  • 7. Simplify your ext. dependency management Our first project.... +
  • 8. Simplify your ext. dependency management Our first project – the structure yourpoject |-application |-library |---Facebook |---Zend |-public |---js |---css |-tests
  • 9. Simplify your ext. dependency management Maintenance nightmare!
  • 10. Simplify your ext. dependency management Version control, anyone?
  • 11. Simplify your ext. dependency management Subversion – svn:externals
  • 12. Simplify your ext. dependency management Git - Submodules
  • 13. Simplify your ext. dependency management Git - Subtree
  • 14. Simplify your ext. dependency management Recap No overview of dependency configuration
  • 15. Simplify your ext. dependency management Recap Externals must be of the same type as the repository!
  • 16. Simplify your ext. dependency management Recap Commiting to Externals is possible!
  • 17. Simplify your ext. dependency management Insight You cannot control dependencies with a VCS!
  • 18. Simplify your ext. dependency management Insight A VCS is not made for dependency management!
  • 19. Simplify your ext. dependency management Requirements first!
  • 20. Simplify your ext. dependency management Do not hide dependency metadata!
  • 21. Simplify your ext. dependency management Transitive dependencies
  • 22. Simplify your ext. dependency management Do not reinvent the wheel v
  • 23. Simplify your ext. dependency management Separation from VCS
  • 24. Simplify your ext. dependency management Mind change: Build process needed!
  • 25. Simplify your ext. dependency management Step 1: Building the build
  • 26. Simplify your ext. dependency management Step 2: Package the software
  • 27. Simplify your ext. dependency management Step 3: Deliver the software
  • 28. Simplify your ext. dependency management Build automation
  • 29. Simplify your ext. dependency management Build automation
  • 30. Simplify your ext. dependency management Build automation with Phing <?xml version="1.0" encoding="UTF-8"?> <project name="MyProject" default="build"> <target name="prepare"> <echo msg="Creating dir ./build" /> <mkdir dir="./build" /> </target> <target name="build" depends="prepare"> <echo msg="Copying files..." /> <copy file="./info.php" tofile="./build/info.php" /> </target> </project>
  • 31. Simplify your ext. dependency management Build automation with pear
  • 32. Simplify your ext. dependency management Build automation with pear pantr pantr = project-based PEAR installer
  • 33. Simplify your ext. dependency management Build automation with pantr 1. pantr pear:init lib
  • 34. Simplify your ext. dependency management Build automation with pantr 2. pantr pear:channel-discover pear.pagosoft.com
  • 35. Simplify your ext. dependency management Build automation with pantr 3. pantr pear:install pgs/parser
  • 36. Simplify your ext. dependency management Packaging
  • 37. Simplify your ext. dependency management *nix packages – 4 steps to enlightenment
  • 38. Simplify your ext. dependency management *nix packages – 4 steps to enlightenment 1. Create directory yourproject-0.0.1
  • 39. Simplify your ext. dependency management *nix packages – 4 steps to enlightenment 2. dh_make –createorig -s
  • 40. Simplify your ext. dependency management *nix packages – 4 steps to enlightenment 3. Add a Makefile
  • 41. Simplify your ext. dependency management *nix packages – 4 steps to enlightenment BINDIR = $(DESTDIR)/usr/bin clean: install: mkdir -p $(BINDIR) cp info.php $(BINDIR) uninstall: rm -f $(BINDIR)/info.php
  • 42. Simplify your ext. dependency management *nix packages – 4 steps to enlightenment 4. fakeroot debian/rules binary
  • 43. Simplify your ext. dependency management *nix packages – Dependencies?
  • 44. Simplify your ext. dependency management *nix packages – Dependencies? Add them to debian/control file
  • 45. Simplify your ext. dependency management *nix packages – Dependencies? Source: yourproject Section: unknown Priority: extra Maintainer: Stephan Hochdoerfer Build-Depends: debhelper (>= 7.0.50~) Standards-Version: 3.8.4 Package: yourproject Architecture: any Depends: php5-cgi php5-mysql Description: yourproject short description long description...
  • 46. Simplify your ext. dependency management PEAR package – 3 steps to enlightenment
  • 47. Simplify your ext. dependency management PEAR package – 3 steps to enlightenment 1. Create directory yourproject-0.0.1
  • 48. Simplify your ext. dependency management PEAR package – 3 steps to enlightenment 2. Create package.xml
  • 49. Simplify your ext. dependency management PEAR package – 3 steps to enlightenment <?xml version="1.0" encoding="UTF-8"?> <package packagerversion="1.8.0" version="2.0"> <name>Yourapp</name> <channel>pear.yourapp.com</channel> <summary>Yourapp summary</summary> <description>Yourapp description.</description> <lead> <name>Stephan Hochdoerfer</name> <user>sh</user> <email>S.Hochdoerfer@bitExpert.de</email> <active>yes</active> </lead> <date>2009-10-18</date> <time>16:00:00</time> <version> <release>0.9.0</release>
  • 50. Simplify your ext. dependency management PEAR package – 3 steps to enlightenment <dependencies> <required> <php> <min>5.0.0</min> </php> <pearinstaller> <min>1.4.0</min> </pearinstaller> </required> </dependencies> <phprelease /> </package>
  • 51. Simplify your ext. dependency management PEAR package – 3 steps to enlightenment 3. pear package
  • 52. Simplify your ext. dependency management How to deliver the packages?
  • 53. Simplify your ext. dependency management How to deliver the packages? *nix repository vs. PEAR server
  • 54. Simplify your ext. dependency management How to deliver the packages? pearhub, pearfarm, openPear
  • 55. Simplify your ext. dependency management How to deliver the packages? PEAR Proxy needed?
  • 56. Simplify your ext. dependency management Missing the glue!
  • 57. Simplify your ext. dependency management Java anyone?
  • 58. Simplify your ext. dependency management Maven – a project management tool
  • 59. Simplify your ext. dependency management Maven Goal: Standardization
  • 60. Simplify your ext. dependency management Maven Lifecycle archetype
  • 61. Simplify your ext. dependency management Maven Lifecycle archetype validate
  • 62. Simplify your ext. dependency management Maven Lifecycle archetype validate compile
  • 63. Simplify your ext. dependency management Maven Lifecycle archetype validate compile test
  • 64. Simplify your ext. dependency management Maven Lifecycle archetype validate compile test package
  • 65. Simplify your ext. dependency management Maven Lifecycle archetype validate compile test integration-test package
  • 66. Simplify your ext. dependency management Maven Lifecycle archetype validate compile verify test integration-test package
  • 67. Simplify your ext. dependency management Maven Lifecycle archetype validate install compile verify test integration-test package
  • 68. Simplify your ext. dependency management Maven Lifecycle archetype deploy validate install compile verify test integration-test package
  • 69. Simplify your ext. dependency management Maven - Project Object Model <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <groupId>com.acme</groupId> <artifactId>myproject</artifactId> <packaging>jar</packaging> <version>0.0.1-SNAPSHOT</version> <name>My project</name> </project>
  • 70. Simplify your ext. dependency management Maven - Dependencies <dependencies> <dependency> <groupId>com.zend</groupId> <artifactId>framework</artifactId> <version>1.11.6-SNAPSHOT</version> <type>jar</type> <scope>compile</scope> </dependency> </dependencies>
  • 71. Simplify your ext. dependency management Maven Beginners guide Maven for PHP?
  • 72. Simplify your ext. dependency management Maven Beginners guide 1. Download & install Maven
  • 73. Simplify your ext. dependency management Maven Beginners guide 2. Edit settings.xml to add PHP for Maven repository
  • 74. Simplify your ext. dependency management Maven Beginners guide <pluginRepository> <id>release-repo1.php-maven.org</id> <name>PHP-Maven 2 Release Repository</name> <url>http://repo1.php-maven.org/release</url> <releases> <enabled>true</enabled> </releases> </pluginRepository>
  • 75. Simplify your ext. dependency management Maven Beginners guide 3. Create new Maven project
  • 76. Simplify your ext. dependency management Maven Beginners guide mvn archetype:generate -DarchetypeGroupId=org.phpmaven -DarchetypeArtifactId=php5-lib-archetype -DarchetypeVersion=1.1 -DgroupId=org.yourproject -DartifactId=appname
  • 77. Simplify your ext. dependency management Maven Beginners guide 2. Deploy your project
  • 78. Simplify your ext. dependency management Maven Beginners guide mvn deploy
  • 79. Simplify your ext. dependency management Maven Bonus points Can act as a proxy!
  • 80. Simplify your ext. dependency management Maven Bonus points Plugins, Plugins, Plugins,...
  • 81. Simplify your ext. dependency management Maven Bonus points Automatic release management
  • 82. Simplify your ext. dependency management Maven Bonus points Automatic deployment
  • 83. Simplify your ext. dependency management Maven Bonus points Build profiles
  • 84. Simplify your ext. dependency management Maven Bonus points IDE support, e.g. Eclipse, Netbeans,...
  • 86. Simplify your ext. dependency management Image Credits http://www.sxc.hu/photo/1092493 http://www.sxc.hu/photo/910278 http://www.sxc.hu/photo/766748