SlideShare a Scribd company logo
1 of 26
Download to read offline
Software Lifecycle
  Development
       in
   Asemantics
      Simone Tripodi
      Federico Zani
     Michele Mostarda


                        1
Reasons (1)
• Building process is ALWAYS neglected;
• Building process is a core part of Software
  Engineering;
• We’ve learnt the lesson from past BAD
  experiences (Joost, Espresso);
• Artifacts, documentation, repositories... all
  of them MUST NOT be generated from
  “my laptop” - developers MUST develop
  (and TEST);
                                                  2
Reasons (2)
• DRY (don’t repeat yourself) - building a
  new environment for every project is
  absolutely USELESS;
• New developers should be able to join the
  project quickly;
• And don’t forget: “we’re not combing the
  dolls!!!” ;)


                                              3
What we developed?

• Absolutely nothing!
 • “Reusing” is a very old concept;
 • All we need (Maven, Hudson, Apache, ...)
    is OSS;
 • A lot of Companies and Open Source
    communities (Apache, Codehaus) are
    using the same approach.

                                              4
And what about the
       housing?

• Priceless!
 • Geeno is an Asemantics’ machine
    previously bought;
 • DynDns.org is a free internet service.

                                            5
... ok, and the sysadmin?


• Priceless!
 • Federico, Michele and Simone
    are Asemantics’ employee;
 • We started-up this system for Matrix’
    project, so Matrix is paying our time ;)

                                               6
so... how much?


• There are some things that money can’t
  buy, for the rest there is MasterCard!




                                           7
The story so far...
• Matrix OpenID Provider




                           8
Developers’ team:
     easy situation
• Simone:
 • Analyst;
 • Developer;
 • All knowledge in him’s hands;
 • Pasquale’s enemy #1!

                                   9
10
Involved people: a
           technical team!!!
• No more just 1 (one) person:
 • Simone: OpenID Coordination;
 • Federico: OpenID Provider Responsable;
 • Michele: OpenID RP Responsable.
• Knowledge must be shared;
• Code must be shared - not just the source
                                              11
Before the team...
• coding;
• coding;
• unit testing;
• svn ci;
• coding;
• integration testing;
• svn ci;
                         12
... but now
• Everybody is coding;
• everybody is committing code;
• everybody is developing different parts;
• every part must be INTEGRATED
  with each other.




                                             13
Dependencies
       The neverending story

• Direct dependencies




                               14
Dependencies
  The neverending story II

• Transitive dependencies




                             15
Maven
•   Maven is a software project management and comprehension
    tool. It can:

    •   manage a project's build;

    •   reporting;

    •   documentation.

•   Dependency management is one of the features of Maven
    that is best known to users and is one of the areas where
    Maven excels!!!




                                                                16
M2Repo
•   A repository in Maven is used to hold build artifacts and
    dependencies of varying types.

•   Local repository

    •   refers to a copy on your own installation that is a cache of
        the remote downloads;

    •   contains the temporary build artifacts that you have not
        yet released.

•   Remote repository

    •   refers to any other type of repository, accessed by a
        variety of protocols such as file:// and http://




                                                                       17
Why not store Artifacts
      in SVN?
• It uses less storage - avoid to replicate
  same artifacts in different projects!!!
• It makes checking out a project quicker;
• No need for versioning.


                                              18
Continuous Integration
•   Continuous Integration is a software development practice where members of a team integrate their work
    frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration
    is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find
    that this approach leads to significantly reduced integration problems and allows a team to develop cohesive
    software more rapidly.




                                                                                                                             19
CI Practices
• Commit code frequently;
• Don’t commit broken code;
• Fix broken builds immediately;
• Write automated developer tests;
• All tests and inspections must pass;
• Avoid getting broken code.
                                         20
Hudson
• Hudson provides an easy-to-use so-called
  continuous integration system, making it
  easier for developers to integrate changes
  to the project, and making it easier for
  users to obtain a fresh build.




                                               21
Hudson




         22
Development Lifecycle
                                                                Typical use case
                                                                   2) Hudson triggered if code is committed




                    Source Control (Subversion)                                                                                CI Server (Hudson)
1) Simone commits his code


                               5) Federico does checkout of a
                                     subset of all code                                                                                      2’) Hudson - using Maven -
                                                                                                       3) Artifacts will be published to
                                                                                                                                                produces artifacts and
                                                                                                             a public repository
                                                                                                                                                   documentation
                                                                          Artifacts/Assemblies
        Simone
                                                                               Repository


                                    6) Federico always uses last stable                      4) Documentation will be published
                                         build of all dependencies                                   to a public site
                                       downloading them from the
                                                repository
                Federico                                                                                                          unit testing
                                                                                                                               artifacts building
                                                                                                                           documentation generation
                                                                       Development/Staging
                                                                       Documentation Sites
                                     5) Mike gets always updated doc
                                              and references
                         Michele


                                                                                                                                                                          23
Asemantics’ References

• Hudson: http://asemantics.dyndns.org/hudson/
• M2Repo: http://asemantics.dyndns.org/m2repo/
• M2Doc: http://asemantics.dyndns.org/m2doc/
• Everything is documented: https://
  front-1.asemantics.com/wiki/asemantics/index.php/
  Staff:Geeno
                                                      24
Used Tools

• Maven (http://maven.apache.org/)
• Hudson (https://hudson.dev.java.net/)
• Apache (http://httpd.apache.org/)


                                          25
26

More Related Content

Similar to Software Lifecycle Management in Asemantics

DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2Docker, Inc.
 
321 codeincontainer brewbox
321 codeincontainer brewbox321 codeincontainer brewbox
321 codeincontainer brewboxLino Telera
 
DockerCon SF 2015: Keynote Day 1
DockerCon SF 2015: Keynote Day 1DockerCon SF 2015: Keynote Day 1
DockerCon SF 2015: Keynote Day 1Docker, Inc.
 
Introduction to Buildpacks.io Presentation
Introduction to Buildpacks.io PresentationIntroduction to Buildpacks.io Presentation
Introduction to Buildpacks.io PresentationKnoldus Inc.
 
Survey of Container Build Tools
Survey of Container Build ToolsSurvey of Container Build Tools
Survey of Container Build ToolsMichael Ducy
 
Dockerize Our Development Machine
Dockerize Our Development MachineDockerize Our Development Machine
Dockerize Our Development MachinePanji Gautama
 
Apache Maven - eXo TN presentation
Apache Maven - eXo TN presentationApache Maven - eXo TN presentation
Apache Maven - eXo TN presentationArnaud Héritier
 
Fits docker into devops
Fits docker into devopsFits docker into devops
Fits docker into devopsEvans Ye
 
ContainerDays Boston 2015: "Continuous Delivery with Containers" (Nick Gauthier)
ContainerDays Boston 2015: "Continuous Delivery with Containers" (Nick Gauthier)ContainerDays Boston 2015: "Continuous Delivery with Containers" (Nick Gauthier)
ContainerDays Boston 2015: "Continuous Delivery with Containers" (Nick Gauthier)DynamicInfraDays
 
"Project Tye to Tie .NET Microservices", Oleg Karasik
"Project Tye to Tie .NET Microservices", Oleg Karasik"Project Tye to Tie .NET Microservices", Oleg Karasik
"Project Tye to Tie .NET Microservices", Oleg KarasikFwdays
 
Shipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOSShipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOSRoss Kukulinski
 
Continuous integration by Rémy Virin
Continuous integration by Rémy VirinContinuous integration by Rémy Virin
Continuous integration by Rémy VirinCocoaHeads France
 
Dynamic Languages in Production: Progress and Open Challenges
Dynamic Languages in Production: Progress and Open ChallengesDynamic Languages in Production: Progress and Open Challenges
Dynamic Languages in Production: Progress and Open Challengesbcantrill
 
Version Control and Continuous Integration
Version Control and Continuous IntegrationVersion Control and Continuous Integration
Version Control and Continuous IntegrationGeff Henderson Chang
 
Magento infrastructure by OpsWay
Magento infrastructure by OpsWayMagento infrastructure by OpsWay
Magento infrastructure by OpsWayOpsWay
 
DEVNET-1169 CI/CT/CD on a Micro Services Applications using Docker, Salt & Ni...
DEVNET-1169	CI/CT/CD on a Micro Services Applications using Docker, Salt & Ni...DEVNET-1169	CI/CT/CD on a Micro Services Applications using Docker, Salt & Ni...
DEVNET-1169 CI/CT/CD on a Micro Services Applications using Docker, Salt & Ni...Cisco DevNet
 
DCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development PipelineDCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development PipelineDocker, Inc.
 

Similar to Software Lifecycle Management in Asemantics (20)

DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2
 
321 codeincontainer brewbox
321 codeincontainer brewbox321 codeincontainer brewbox
321 codeincontainer brewbox
 
DockerCon SF 2015: Keynote Day 1
DockerCon SF 2015: Keynote Day 1DockerCon SF 2015: Keynote Day 1
DockerCon SF 2015: Keynote Day 1
 
Introduction to Buildpacks.io Presentation
Introduction to Buildpacks.io PresentationIntroduction to Buildpacks.io Presentation
Introduction to Buildpacks.io Presentation
 
Survey of Container Build Tools
Survey of Container Build ToolsSurvey of Container Build Tools
Survey of Container Build Tools
 
Dockerize Our Development Machine
Dockerize Our Development MachineDockerize Our Development Machine
Dockerize Our Development Machine
 
Apache Maven - eXo TN presentation
Apache Maven - eXo TN presentationApache Maven - eXo TN presentation
Apache Maven - eXo TN presentation
 
Continuous Everything
Continuous EverythingContinuous Everything
Continuous Everything
 
Fits docker into devops
Fits docker into devopsFits docker into devops
Fits docker into devops
 
Project Moby
Project MobyProject Moby
Project Moby
 
ContainerDays Boston 2015: "Continuous Delivery with Containers" (Nick Gauthier)
ContainerDays Boston 2015: "Continuous Delivery with Containers" (Nick Gauthier)ContainerDays Boston 2015: "Continuous Delivery with Containers" (Nick Gauthier)
ContainerDays Boston 2015: "Continuous Delivery with Containers" (Nick Gauthier)
 
"Project Tye to Tie .NET Microservices", Oleg Karasik
"Project Tye to Tie .NET Microservices", Oleg Karasik"Project Tye to Tie .NET Microservices", Oleg Karasik
"Project Tye to Tie .NET Microservices", Oleg Karasik
 
Shipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOSShipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOS
 
Jenkins
JenkinsJenkins
Jenkins
 
Continuous integration by Rémy Virin
Continuous integration by Rémy VirinContinuous integration by Rémy Virin
Continuous integration by Rémy Virin
 
Dynamic Languages in Production: Progress and Open Challenges
Dynamic Languages in Production: Progress and Open ChallengesDynamic Languages in Production: Progress and Open Challenges
Dynamic Languages in Production: Progress and Open Challenges
 
Version Control and Continuous Integration
Version Control and Continuous IntegrationVersion Control and Continuous Integration
Version Control and Continuous Integration
 
Magento infrastructure by OpsWay
Magento infrastructure by OpsWayMagento infrastructure by OpsWay
Magento infrastructure by OpsWay
 
DEVNET-1169 CI/CT/CD on a Micro Services Applications using Docker, Salt & Ni...
DEVNET-1169	CI/CT/CD on a Micro Services Applications using Docker, Salt & Ni...DEVNET-1169	CI/CT/CD on a Micro Services Applications using Docker, Salt & Ni...
DEVNET-1169 CI/CT/CD on a Micro Services Applications using Docker, Salt & Ni...
 
DCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development PipelineDCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development Pipeline
 

Recently uploaded

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 

Recently uploaded (20)

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 

Software Lifecycle Management in Asemantics

  • 1. Software Lifecycle Development in Asemantics Simone Tripodi Federico Zani Michele Mostarda 1
  • 2. Reasons (1) • Building process is ALWAYS neglected; • Building process is a core part of Software Engineering; • We’ve learnt the lesson from past BAD experiences (Joost, Espresso); • Artifacts, documentation, repositories... all of them MUST NOT be generated from “my laptop” - developers MUST develop (and TEST); 2
  • 3. Reasons (2) • DRY (don’t repeat yourself) - building a new environment for every project is absolutely USELESS; • New developers should be able to join the project quickly; • And don’t forget: “we’re not combing the dolls!!!” ;) 3
  • 4. What we developed? • Absolutely nothing! • “Reusing” is a very old concept; • All we need (Maven, Hudson, Apache, ...) is OSS; • A lot of Companies and Open Source communities (Apache, Codehaus) are using the same approach. 4
  • 5. And what about the housing? • Priceless! • Geeno is an Asemantics’ machine previously bought; • DynDns.org is a free internet service. 5
  • 6. ... ok, and the sysadmin? • Priceless! • Federico, Michele and Simone are Asemantics’ employee; • We started-up this system for Matrix’ project, so Matrix is paying our time ;) 6
  • 7. so... how much? • There are some things that money can’t buy, for the rest there is MasterCard! 7
  • 8. The story so far... • Matrix OpenID Provider 8
  • 9. Developers’ team: easy situation • Simone: • Analyst; • Developer; • All knowledge in him’s hands; • Pasquale’s enemy #1! 9
  • 10. 10
  • 11. Involved people: a technical team!!! • No more just 1 (one) person: • Simone: OpenID Coordination; • Federico: OpenID Provider Responsable; • Michele: OpenID RP Responsable. • Knowledge must be shared; • Code must be shared - not just the source 11
  • 12. Before the team... • coding; • coding; • unit testing; • svn ci; • coding; • integration testing; • svn ci; 12
  • 13. ... but now • Everybody is coding; • everybody is committing code; • everybody is developing different parts; • every part must be INTEGRATED with each other. 13
  • 14. Dependencies The neverending story • Direct dependencies 14
  • 15. Dependencies The neverending story II • Transitive dependencies 15
  • 16. Maven • Maven is a software project management and comprehension tool. It can: • manage a project's build; • reporting; • documentation. • Dependency management is one of the features of Maven that is best known to users and is one of the areas where Maven excels!!! 16
  • 17. M2Repo • A repository in Maven is used to hold build artifacts and dependencies of varying types. • Local repository • refers to a copy on your own installation that is a cache of the remote downloads; • contains the temporary build artifacts that you have not yet released. • Remote repository • refers to any other type of repository, accessed by a variety of protocols such as file:// and http:// 17
  • 18. Why not store Artifacts in SVN? • It uses less storage - avoid to replicate same artifacts in different projects!!! • It makes checking out a project quicker; • No need for versioning. 18
  • 19. Continuous Integration • Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly. 19
  • 20. CI Practices • Commit code frequently; • Don’t commit broken code; • Fix broken builds immediately; • Write automated developer tests; • All tests and inspections must pass; • Avoid getting broken code. 20
  • 21. Hudson • Hudson provides an easy-to-use so-called continuous integration system, making it easier for developers to integrate changes to the project, and making it easier for users to obtain a fresh build. 21
  • 22. Hudson 22
  • 23. Development Lifecycle Typical use case 2) Hudson triggered if code is committed Source Control (Subversion) CI Server (Hudson) 1) Simone commits his code 5) Federico does checkout of a subset of all code 2’) Hudson - using Maven - 3) Artifacts will be published to produces artifacts and a public repository documentation Artifacts/Assemblies Simone Repository 6) Federico always uses last stable 4) Documentation will be published build of all dependencies to a public site downloading them from the repository Federico unit testing artifacts building documentation generation Development/Staging Documentation Sites 5) Mike gets always updated doc and references Michele 23
  • 24. Asemantics’ References • Hudson: http://asemantics.dyndns.org/hudson/ • M2Repo: http://asemantics.dyndns.org/m2repo/ • M2Doc: http://asemantics.dyndns.org/m2doc/ • Everything is documented: https:// front-1.asemantics.com/wiki/asemantics/index.php/ Staff:Geeno 24
  • 25. Used Tools • Maven (http://maven.apache.org/) • Hudson (https://hudson.dev.java.net/) • Apache (http://httpd.apache.org/) 25
  • 26. 26