Maven is a build automation tool used primarily for Java projects. This presentation will cover the basics of Maven and its usage while developing Java application.This is for anyone interested to learn Maven especially the Java developers.
This presentation provides a comprehensive overview of Maven 3 including lifecycles and a detail of the default lifecycle and the associated phases within.
Maven is a build automation tool used primarily for Java projects. This presentation will cover the basics of Maven and its usage while developing Java application.This is for anyone interested to learn Maven especially the Java developers.
This presentation provides a comprehensive overview of Maven 3 including lifecycles and a detail of the default lifecycle and the associated phases within.
My presentation on Maven for the Durban Java User Group meeting, held at Thumbtribe's offices. As I'm not happy with everything as-is, my aim is to improve the presentation with an accompanying project which I need to set up in a proper environment so that it can serve as a fully functional example. To follow progress, keep an eye on the following blog post:
http://johanmynhardt.blogspot.com/2011/05/maven-from-scratch-to-production.html
Maven is the most popular Java Dependency Management Tool.
In this hands-on course, you will understand how Maven makes the life of a Java developer easy. We will use a step by step approach with 20 steps.
During the course, you will automate these using Maven.
Compiling Java Code
Running Unit Tests
Building Jar's and Wars
Running web applications in Tomcat
Setting up new projects
You will learn following features of Maven with 5 Example Projects on Github.
Dependency Management - including Transitive Dependencies
Maven Project Object Model
Maven Build Life Cycle
Maven Plugins
Maven Archetypes - Generate Projects
Maven Best Practices
Multi Module Maven Projects
Spring 3.1 to 3.2 in a Nutshell - Spring I/O 2012Sam Brannen
Spring 3.1 introduced several eagerly awaited features including bean definition profiles (a.k.a., environment-specific configuration), enhanced Java-based application and infrastructure configuration (a la XML namespaces), and a new cache abstraction. This session will provide attendees a high-level overview of these major new features plus a quick look at additional enhancements to the framework such as the new c: namespace for constructor arguments, support for Servlet 3.0, improvements to Spring MVC and REST, and Spring's new integration testing support for profiles and configuration classes. In addition, this talk will introduce new features under development in the Spring 3.2 roadmap.
A brief overview on Apache Maven2. About the lifecycle, core concepts and how to setup a project. Presented with demos about Eclipse integration and reporting customization.
The Diabolical Developer's Guide to Surviving Java 9jClarity
The Diabolical Developer presents a pragmatic guide on running and compiling your application on Java 9. There are a lot of new resrtictions due to the Java 9 modular runtime, so make sure you read through carefully before your migration!
Jenkins Pipeline 101 and TCI - presentation and workshopYoram Michaeli
Jenkins Pipeline 101 and TCI meetup and workshop slides.
The workshop page: https://gist.github.com/yorammi/a2473b7256b0f602bc21187614f11f92
The gitHub project: https://github.com/TikalCI
My presentation on Maven for the Durban Java User Group meeting, held at Thumbtribe's offices. As I'm not happy with everything as-is, my aim is to improve the presentation with an accompanying project which I need to set up in a proper environment so that it can serve as a fully functional example. To follow progress, keep an eye on the following blog post:
http://johanmynhardt.blogspot.com/2011/05/maven-from-scratch-to-production.html
Maven is the most popular Java Dependency Management Tool.
In this hands-on course, you will understand how Maven makes the life of a Java developer easy. We will use a step by step approach with 20 steps.
During the course, you will automate these using Maven.
Compiling Java Code
Running Unit Tests
Building Jar's and Wars
Running web applications in Tomcat
Setting up new projects
You will learn following features of Maven with 5 Example Projects on Github.
Dependency Management - including Transitive Dependencies
Maven Project Object Model
Maven Build Life Cycle
Maven Plugins
Maven Archetypes - Generate Projects
Maven Best Practices
Multi Module Maven Projects
Spring 3.1 to 3.2 in a Nutshell - Spring I/O 2012Sam Brannen
Spring 3.1 introduced several eagerly awaited features including bean definition profiles (a.k.a., environment-specific configuration), enhanced Java-based application and infrastructure configuration (a la XML namespaces), and a new cache abstraction. This session will provide attendees a high-level overview of these major new features plus a quick look at additional enhancements to the framework such as the new c: namespace for constructor arguments, support for Servlet 3.0, improvements to Spring MVC and REST, and Spring's new integration testing support for profiles and configuration classes. In addition, this talk will introduce new features under development in the Spring 3.2 roadmap.
A brief overview on Apache Maven2. About the lifecycle, core concepts and how to setup a project. Presented with demos about Eclipse integration and reporting customization.
The Diabolical Developer's Guide to Surviving Java 9jClarity
The Diabolical Developer presents a pragmatic guide on running and compiling your application on Java 9. There are a lot of new resrtictions due to the Java 9 modular runtime, so make sure you read through carefully before your migration!
Jenkins Pipeline 101 and TCI - presentation and workshopYoram Michaeli
Jenkins Pipeline 101 and TCI meetup and workshop slides.
The workshop page: https://gist.github.com/yorammi/a2473b7256b0f602bc21187614f11f92
The gitHub project: https://github.com/TikalCI
BP-10 Keeping Your Sanity – Rapid Development & Deployment ToolsAlfresco Software
There are many variations for deploying customizations into an Alfresco installation. Working as a global team on multiple projects, Blue Fish Development Group has created a set of processes, using standard tools such as Maven and Ant, to keep the development and deployment cycle sane. Working as a team presents challenges for maintaining source control and being able to quickly roll out the latest version of changes, and managing multiple projects requires the ability to quickly stand up a development environment and begin testing changes. You’ll learn Blue Fish’s procedures and walk away with a basic set of tools that will let you build your own development/ deployment framework that will reduce cycle time, improve repeatability and revert to a known/clean state.
Top Maven Interview Questions in 2020 | EdurekaEdureka!
YouTube Link: https://youtu.be/5iTcAR4fScM
**DevOps Certification Courses - https://www.edureka.co/devops-certification-training***
This video on 'Maven Interview Questions' discusses the most frequently asked Maven Interview Questions. This PPT will help give you a detailed explanation of the topics which will help you in acing the interviews.
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Castbox: https://castbox.fm/networks/505?country=in
The Apereo OAE Bootcamp offers an introduction into back-end and front-end development for the Apereo OAE project.
The back-end development part focuses on learning the different extension points behind the scenes in the service layer of OAE. A back-end component for OAE that exposes a REST API is built from scratch.
Back-end development topics include:
- Node.js NPM module system
- OAE back-end application life-cycle
- Data-modelling with Apache Cassandra and writing CQL queries from Node.js
- Using the OAE APIs to expose back-end functionality for the web VIA RESTful APIs
- Writing back-end unit tests using Grunt and Mocha. If time permits, the following will also be covered:
- Integrating with OAE's ElasticSearch query and index functionality
- Integrating with OAE's Activity and Notifications functionality
- Integration with OAE's Admin Configuration functionality
The front-end development part focuses on writing a UI widget using the REST APIs developed in the back-end development part.
Front-end development topics include:
- Integrating with the OAE Widget loading system
- Writing internationalizable templates with TrimPath and the widget i18n and l10n functionality
- Interacting with the core OAE UI APIs
- Using bootstrap 3 to design responsive UI layouts for your widgets
- Writing front-end unit tests using Grunt and CasperJS
Seminar about docker and its containerization capabilities during the "Aggiornamento Agile" event of Club degli Sviluppatori in January 2015, in Bari (Italy)
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAppDynamics
A cornerstone of the DevOps philosophy, investment in automation at all stages across the SDLC has increased over recent years. Automation promises velocity and reduced errors, helps foster repeatable processes, and removes the need for long hours on dull, repetitive tasks. So what’s not to like? The downside of automation is that unless applied at the right place in your SDLC it can make a bad process worse. Automation also raises questions around job security, the need for re-skilling in other areas, and tool sprawl if different teams each choose their preferred technology. This session will outline:
-A short chronology of where automation has impacted the modern software stack
-Where it makes the most sense to automate (by identifying your key constraints)
-Best practices for adopting automation and how to identify where it’s working — and where it isn’t
For more information, visit: www.appdynamics.com
DevOpsGuys - DevOps Automation - The Good, The Bad and The UglyDevOpsGroup
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly gives an overview of the strengths and weaknesses of DevOps automation, tips on developing your automation strategy, and a high level overview of automation options across the DevOps toolchain.
Openstack - An introduction/Installation - Presented at Dr Dobb's conference...Rahul Krishna Upadhyaya
Slide was presented at Dr. Dobb's Conference in Bangalore.
Talks about Openstack Introduction in general
Projects under Openstack.
Contributing to Openstack.
This was presented jointly by CB Ananth and Rahul at Dr. Dobb's Conference Bangalore on 12th Apr 2014.
The Information Technology have led us into an era where the production, sharing and use of information are now part of everyday life and of which we are often unaware actors almost: it is now almost inevitable not leave a digital trail of many of the actions we do every day; for example, by digital content such as photos, videos, blog posts and everything that revolves around the social networks (Facebook and Twitter in particular). Added to this is that with the "internet of things", we see an increase in devices such as watches, bracelets, thermostats and many other items that are able to connect to the network and therefore generate large data streams. This explosion of data justifies the birth, in the world of the term Big Data: it indicates the data produced in large quantities, with remarkable speed and in different formats, which requires processing technologies and resources that go far beyond the conventional systems management and storage of data. It is immediately clear that, 1) models of data storage based on the relational model, and 2) processing systems based on stored procedures and computations on grids are not applicable in these contexts. As regards the point 1, the RDBMS, widely used for a great variety of applications, have some problems when the amount of data grows beyond certain limits. The scalability and cost of implementation are only a part of the disadvantages: very often, in fact, when there is opposite to the management of big data, also the variability, or the lack of a fixed structure, represents a significant problem. This has given a boost to the development of the NoSQL database. The website NoSQL Databases defines NoSQL databases such as "Next Generation Databases mostly addressing some of the points: being non-relational, distributed, open source and horizontally scalable." These databases are: distributed, open source, scalable horizontally, without a predetermined pattern (key-value, column-oriented, document-based and graph-based), easily replicable, devoid of the ACID and can handle large amounts of data. These databases are integrated or integrated with processing tools based on the MapReduce paradigm proposed by Google in 2009. MapReduce with the open source Hadoop framework represent the new model for distributed processing of large amounts of data that goes to supplant techniques based on stored procedures and computational grids (step 2). The relational model taught courses in basic database design, has many limitations compared to the demands posed by new applications based on Big Data and NoSQL databases that use to store data and MapReduce to process large amounts of data.
Course Website http://pbdmng.datatoknowledge.it/
Contact me to download the slides
Leading a Community-Driven Open Source ProjectVincent Massol
Talk presented at Voxxed Luxembourg 2017.
This talk is a return of experience of 20 years developing open source software at the Apache Software Foundation (Jakarta Cactus, Apache Maven), at Codehaus (Cargo) and on the XWiki open source project (last 10 years).
Through the example of the XWiki open source project, the talk will tackle best practices and governance rules for running community-driven open source projects and it'll also tackle the difficult topic of how to run such a project when there are companies making money from the open source project behind the scene.
Examples of topics that will be covered:
* Committership
* Development best practices
* Roadmap definitions
* Fully automating software releases
* Handling companies
* Tracking who's using your project
Java is evolving rapidly: Maven helps you staying on trackArnaud Héritier
Java evolution is getting faster these days, and that's a great thing. Nowadays, one jave version is deprecated every 2 years:
- Java 5:october 2009
- Java 6: february 2013
- Java 7: march 2015 (really? already?)
- Java 8: march 2017 (with that one, you'll discover new types of incompatibilities...)
And you, or your applications, how do you manage upgrades?
Come and see how Apache Maven and its tooling (Animal Sniffer, Toolchains, ...) help you upgrade with confidence, at your own pace and without headaches.
Quand java prend de la vitesse, apache maven vous garde sur les railsArnaud Héritier
Le rythme d’évolution (et donc de support) de Java s’accélère ces dernières années (et nous n’allons pas nous plaindre). Désormais une nouvelle version de Java est dépréciée tous les deux ans!
* Java 5 : Octobre 2009
* Java 6 : Février 2013
* Java 7 : Avril 2015 (QUOI ? DEJA ? MAINTENANT ?)
* Java 8 : Mars 2017 (incompatibilité source vs binaire, vous allez découvrir...)
Mais vous, ou plutôt vos applications, comment gérez vous leurs transitions d’une version de Java à une autre ?
Découvrez dans cette session comment Apache Maven, et son outillage (toolchain, animal-sniffer, …) vous aident à jongler entre différentes versions de Java sans douleur pour vos projets.
Tools and processes used at eXo to develop our mobile applications (iOS & Android) including continuous integration and deployment.
Tips and tricks to setup all the infrastructure involved in them.
Overview of Maven and its concepts
Maven and its ecosystem
Good and bad practices
Usecases
Maven, and the future of Maven 3.x
---
Delta prez @GenevaJug :
New slides : 64,65,90,95
Updated slides : 49-51;66;91;92;118
Thx @fcamblor
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
2. 2
About me
• Committer since 2004
and member of the PMC
• Coauthor of « Apache
Maven » published by
Pearson (in French)
• Software Factory
Manager
eXo platform
» In charge of tools and
methods
• Contact me :
» http://aheritier.net
» Twitter : @aheritier
» Skype : aheritier
3. 3
Definition
• Apache Maven is a software project
management and comprehension tool.
• Based on the concept of a project object
model (POM)
» Maven can manage a project's build, binaries,
reporting and documentation from a central piece
of information.
• Apache Maven is standards/conventions
driven
» How many of you are doing JEE and related
developments ?
4. 4
History
• Initiated in 2001 by Jason Van Zyl in Alexandria,
an Apache Jakarta project,
• Moved to Turbine few months after,
• Became a Top Level Project in 2003.
• Maven 2.0 released in September 2005
• Maven 3.0 released in October 2010
» 3.0.1 soon (RC1 staged)
5. 5
Choose your way of thinking
Conventions approach Scripting approach
6. 6
Competitors
• Ant + Ivy, Easy Ant, Gant, Gradle, Buildr…
• Script oriented
» You can do what you want !
• Reuse many of Maven conventions (directories
layout, …) and services (repositories) but without
enforcing them
• The risk for them : Not being able to evolve due to
the too high level of customization proposed to
the user.
» We tried on Maven 1 and it died because of that. It was
impossible to create a set of tests to cover all usages.
» It’s like providing a framework without public API L
7. 7
With scripts oriented builds
You can have
(if you have good skills)
But often you have
(moreover after years …)
8. 8
With Maven
We dream to deliver
(Maven 3.x)
But yesterday we too often had
(Maven 2.x)
10. 10
Backward compatibility - Criticisms
• Migration from Maven 1 to Maven 2 was
impossible. Everything had to be re-done.
• Updates between 2.x versions and also
between 2.0.x weren’t often without side
effects.
11. 11
Backward compatibility
• Near to 700 integration tests
• Tested for months on a large set of OSS
projects
• 7 alphas + 3 betas versions
• It’s a revolution under the hood but an
evolution for end users
14. 14
Performances - Criticisms
• Maven is slow
• It spends its time to download the world
• Whereas everybody has multicore CPUs, it
doesn’t allow to process modules builds in
parallel
15. 15
Performances
• A set of benchmark tools was developed to
measure Maven performances (IO, CPU,
Memory, Network …)
• Startup and execution times are reduced
» Java 5 optimizations
» Code cleanup and improvements
• Reduced Memory footprint
• Artifacts Resolution Caching
» .lastUpdated files in your local repo
» Enforce checks with –U option
16. 16
Performances – Parallel builds
• Parallel builds
» An execution plan is predefined at startup to
define which modules could be built in //
» Requires to have up to date plugins to avoid dead
locks and some others issues
» Launch a build with 2 threads
• mvn –T 2 install
» Launch a build with 2 threads per CPU core
• mvn –T 2C install
17. 17
Performances – mvnsh
• Performances optimizations
» Intelligent cache system (artifacts resolution,
project descriptors …)
» No need to restart a JVM for each build
• Cross platform « unix like » shell
» Alias, environment settings …
» Color highlighting
18. 18
Performances – mvnsh
• All in one
» Includes Maven 3.x
» Allows to have color highlighting with “standard”
Maven 3.x
• Developed and freely distributed by Sonatype
21. 21
Extensibility - Criticisms
• It is difficult and time consuming to extend
maven (write plugins)
» Many unknown technologies like Plexus for IOC
• It is difficult/impossible to reuse maven
plugins
» Its impossible to extend plugins/mojo and
lifecycles
22. 22
Extensibility
• New APIs to improve abstraction of
underneath implementation
» Aether : to manage artifacts and repositories
• Plugin classloader partitioning
• Embeddable
• IOC replaced by Guice
» For now (3.0) a wrapper is hiding the change
» You don’t yet use Guice directly (from plugins for
example)
25. 25
Robusness - Validations
• Many more validations in POMs (warnings or
errors)
» Missing plugins versions
» Duplicated dependencies in a POM
» Incoherent inheritance (wrong relative path or
parent not in the upper directory)
• Improved error messages with links to wiki
pages for more detailed information
26. 26
Robusness – Artifacts management
• Parent POMs prefer to resolve from
repositories
» Version less parent will be available in a future
maven 3.x release by using the relativePath
element
• Profiles usage consolidation
» No more profiles.xml (incompatible with future
polyglot feature)
27. 27
Robusness – Artifacts management
• No more support for legacy repository layout
for Maven 1.0
• SNAPSHOTs are always deployed with
timestamps
28. 28
Robusness – Plugins management
• Plugin version is by default RELEASE and no
more SNAPSHOT
» Affects command-line invocation
• Plugins cannot use versions LATEST or
RELEASE
» Affects command-line invocation and POM
• Plugins are resolved only from
<pluginRepository> entries
29. 29
Robusness – Site plugin
• Site plugin is now completely extracted from
Maven core
» It has its own lifecycle
» reporting section in POM becomes useless
(moved in plugin configuration)
31. 31
Criticisms
• XML, we don’t like it
• POM is too verbose
• POM v4 didn’t evolve last 5 years
» When will you add new common attributes to
ease plugins configuration (encoding …)
» New feature like global exclusions
32. 32
POM
• No change in POM syntax for Maven 3.0
• Changes will occur in 3.x versions
» New model with a new version
» Only new things
» Generation / deployment of 4.0.0 current POM to
keep backward compatibility with old maven
versions
• Mixins to allow to import POM fragments
33. 33
POM - Polyglot
• Developed and freely distributed by Sonatype
• Extended version of Maven 3.0 using its new
embedding and extensibility capabilities
• Allow translation (read/write) from/to various
syntaxes
» Yaml
» Scala
» Groovy
• Allow macros and freeform scripting
35. 35
Licence et copyrights
• Photos and logos belong to their respective
authors/owners
• Various ideas are coming from the excellent
presentation done by Matthew McCullough :
» http://www.slideshare.net/matthewmccullough/
maven-30-at-oredev
36. 36
Licence et copyrights
• Content under Creative Commons 3.0
» Attribution — You must attribute the work in the manner
specified by the author or licensor (but not in any way that suggests
that they endorse you or your use of the work).
» Noncommercial — You may not use this work for commercial
purposes.
» Share Alike — If you alter, transform, or build upon this work,
you may distribute the resulting work only under the same or similar
license to this one.
• http://creativecommons.org/licenses/by-nc-sa/3.0/us/
39. 39
Users Mailing List
• Blue :
» Number of subscribers
• Red :
» Number of messages
per day
• users@maven.apache.or
g
» Traffic statistics cover a
total of 1697 days.
» Current subscribers: 1861
» Current digest
subscribers:47
» Total posts (1697 days):
80633
» Mean posts per day:
47.52
• http://pulse.apache.org/
42. 42
The team
• 60 committers,
• More than 30 active in 2009,
• Several organizations like Sonatype, deliver
resources and professional support,
• A community less isolated : more interactions
with Eclipse, Jetty,
45. 45
Some links
• The main web site :
» http://maven.apache.org
• Project’s team wiki :
» http://docs.codehaus.org/display/MAVEN
• Project’s users wiki :
» http://docs.codehaus.org/display/MAVENUSER
46. 46
Books
• Nicolas De loof
Arnaud Héritier
» Published by Pearson
» Collection Référence
» Based on our own
experiences with
Maven.
» From beginners to
experts.
» In French only
47. 47
Books
• Sonatype / O’Reilly :
» The Definitive Guide
» http://
www.sonatype.com/
books
» Free download
» Available in several
languages