• Save
Control Your Dependencies
Upcoming SlideShare
Loading in...5
×
 

Control Your Dependencies

on

  • 1,878 views

Short presentation explaining what dependency managment means, and provide some concrete tips to control your dependencies.

Short presentation explaining what dependency managment means, and provide some concrete tips to control your dependencies.

Statistics

Views

Total Views
1,878
Views on SlideShare
1,870
Embed Views
8

Actions

Likes
1
Downloads
0
Comments
0

2 Embeds 8

http://qdetactive.wordpress.com 4
http://www.linkedin.com 4

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Control Your Dependencies Control Your Dependencies Presentation Transcript

  • www.devoxx.com
  • Control your dependencies
    • Gilles Scokart
    • Lead Software Engineer
    • Fujitsu Services
  • Overall Presentation Goal
    • Explain why dependency control is important and provides tips to do it
  • The problems
    • What set of modules ?
    • Which versions ?
    • When to update ? What is the impact ?
    • Is it authentic ?
    • What are the licenses ?
    • Is it maintained ?
    • Size of the libraries
  • What set of modules ?
    • Maven & Ivy offer transitive dependencies
    • Trap 1 : Don’t abuse… You would loose control. Limit the path to what you really need !
    • Tip 1 : Explicitly compilation path
    • Tip 2 : Dependency plugin(maven), Deco task (ant)
    • Tip 3 : Use <excludes>
    • Tip 4 : Use optional (maven), Use dedicated configurations (Ivy)
  • What versions ?
    • Maven & Ivy resolve conflicts.
    • Trap 2 : Don’t abuse… You would loose control Limit the path to what you really need !
    • Tip 4 : Look at the dependency report.
    • Tip 5 : Control transitive dependencies :
            • (Ivy) dependencies/conflict , dependencies/overwrite, Conflict Resolution Manager.
            • (Maven) DependencyManagment , Dependency plugin
  • Developer Challenges
    • Runtime path hard to control (Deco)
    • Incompatibilities between modules
    • Impact of a version change (Clirr , Deco)
    • Version range difficult to use (testing , Unknow version, repeatability)
    • Don’t think the tool solve everything
  • Control your repository
    • Dependencies comes from a repository
        • Control your repository
            • Control Meta-data quality
            • Control Licenses
            • Control Authenticity
            • Control Availability
    • Tip 6 : Use internal repository, Repository Manager (Archiva, Nexus, …)
  • commons-logging 1.1
    • <dependencies>
    • <dependency>
    • <groupId>log4j</groupId>
    • <artifactId>log4j</artifactId>
    • <version>1.2.12</version>
    • </dependency>
    • <dependency>
    • <groupId>logkit</groupId>
    • <artifactId>logkit</artifactId>
    • <version>1.0.1</version>
    • </dependency>
    • <dependency>
    • <groupId>junit</groupId>
    • <artifactId>junit</artifactId>
    • <version>3.8.1</version>
    • <scope>test</scope>
    • </dependency>
    • <dependency>
    • <groupId>avalon-framework</groupId>
    • <artifactId>avalon-framework</artifactId>
    • <version>4.1.3</version>
    • </dependency>
    • <dependency>
    • <groupId>javax.servlet</groupId>
    • <artifactId>servlet-api</artifactId>
    • <version>2.3</version>
    • </dependency>
    • </dependencies>
  • Summary
    • Control the list of dependencies
    • Control the versions
    • Control your repository
  • Thanks for your attention!
    • Maven : http://maven.apache.org/
    • Ivy : http://ant.apache.org/ivy/
    • Mvn dependency : http://maven.apache.org/plugins/maven-dependency-plugin/
    • Deco project : http://deco-project.sourceforge.net/
    • Clirr : http://clirr.sourceforge.net/
    • Archiva : http://archiva.apache.org/
    • Nexus : http://nexus.sonatype.org/