SlideShare a Scribd company logo
Maven 3.0
What’s new in
by Matthew McCullough, Ambient Ideas, LLC
In the beginner’s mind
there are
many possibilities.
In the expert’s mind
there are few.
In the beginner’s mind
there are
many possibilities.
In the expert’s mind
there are few.
This Talk
Maven and You
❖Who will enjoy this talk?
❖Current Maven user
❖Familiar with POM syntax
❖Interested in preparing for Maven 3.0
❖Comfortable with betas
Maven and Me
❖ Tenure
❖ Using it for 8 years since 0.7
❖ Contributing to the codebase via patches
❖ Authoring archetypes
❖ 30 open source how-to projects
Maven and Me
❖ Tenure
❖ Using it for 8 years since 0.7
❖ Contributing to the codebase via patches
❖ Authoring archetypes
❖ 30 open source how-to projects
❖ Mentoring
❖ 3 virtual Sonatype classes a month
❖ Several on-site classes around the globe per year
❖ 30+ global conference and user group talks to date
❖ 50+ enterprise Maven-consulting clients
Maven and Me
❖ Tenure
❖ Using it for 8 years since 0.7
❖ Contributing to the codebase via patches
❖ Authoring archetypes
❖ 30 open source how-to projects
❖ Mentoring
❖ 3 virtual Sonatype classes a month
❖ Several on-site classes around the globe per year
❖ 30+ global conference and user group talks to date
❖ 50+ enterprise Maven-consulting clients
❖ Writing
❖ O’Reilly: Maven The Definitive Guide by Tim O’Brien
❖ Promotional materials, testimonial on the back cover
❖ DZone Maven RefCard
❖ 8th most-downloaded card of all time
The
Roadmap
3.0
Compatibility
❖Tested against 100s of Maven 2 projects
❖Legacy simulation layers
❖Using for 6 months almost exclusively
❖450+ integration tests
Maven 3.0 at Øredev
Maven 3.0 at Øredev
Maven 3.0 at Øredev
603!
Speed
❖Performance tuned
❖Benchmarks
❖ Disk I/O
❖ Network I/O
❖ CPU
❖ Memory
Maven Speed Test
Maven 3.0 at Øredev
Quick
❖ Faster execution
❖ 10% faster in the demo
❖ Multi-threaded downloads
❖ Parallel plugin execution
❖ Java 5 optimized builds
Maven 3.0 at Øredev
Maven 3.0 at Øredev
Efficient
❖ Memory conservative
❖ 73% less in the demo
❖ Tuned data structures
❖Largely re-written for quality, flexibility
❖30% smaller code base
❖Continuous integration running test suite
Code
Extensibility
❖Layers of abstraction
❖Plugin classloader partitioning
❖Plexus to Guice IOC rewrite
❖Fully embeddable
❖Basis for derived tools
How can you keep up with Maven 3?
http://maven.apache.org/docs/3.0/release-notes.html
http://delicious.com/matthew.mccullough/maven
POMs &
Maven 3.0
POM XML Syntax
❖ No POM syntax changes for Maven 3.0
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.ambientideas</groupId>
<artifactId>sample-barestbones</artifactId>
<version>1.0-SNAPSHOT</version>
</project>
POM XML Validations
❖ Heavily validated against common mistakes
❖ Forward-test with Maven 3.0
❖Switch back to 2.x for production
❖ 3.0 POMs run better on 2.x
POM XML Validations
❖Warns when plugin versions are
not specified
“Plugin version omitted” warning
Maven 3.0 at Øredev
POM XML Validations
❖ Blocks duplicate dependencies
❖Examined in same POM only
❖Conflict resolution used otherwise
<dependency>
<artifactId>junit</modelVersion>
<groupId>junit</groupId>
<version>3.8.1</version>
</dependency>
...
<dependency>
<artifactId>junit</modelVersion>
<groupId>junit</groupId>
<version>3.8.2</version>
</dependency>
“Duplicate dependency” error
Maven 3.0 at Øredev
Help URLs
❖ Wiki page URLs now shown for all error
messages
Help URLs
❖ Wiki page URLs now shown for all error
messages
Maven 3.0 at Øredev
Parent POM References
❖ Parent POMs now prefer to resolve from
repositories
❖Better consistency on multi-module builds
❖ Version-less parent references may be
allowed (not ready yet)
❖Will require <relativePath> tag
❖MNG-624
<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.ambientideas</groupId>
<artifactId>sample-multimodulejava-parent</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
</project>
<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.ambientideas</groupId>
<artifactId>sample-multimodulejava-parent</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
</project>
<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.ambientideas</groupId>
<artifactId>sample-multimodulejava-parent</artifactId>
<relativePath>../</relativePath>
</parent>
</project>
Maven 3.0 at Øredev
Profiles Consolidated
•Profiles.xml external file support removed
•Folded into pom.xml
•Already a best-practice
•Necessary for Polyglot Maven
Parallel Builds
Parallel Build Approach
•Examines reactor build plan
•Threads up to what’s possible
•Governed by your provided limits
https://cwiki.apache.org/MAVEN/parallel-builds-in-maven-3.html
Parallel Build Syntax
•Four threads
mvn -T 4 install
Parallel Build Syntax
•Two threads per core
mvn -T 2C install
Serial Building
Maven 3.0 at Øredev
Parallel Building
Maven 3.0 at Øredev
Artifact Behavior
Changes
Maven 1.0 Deprecated
• Maven 1.0 repository support removed
<layout>legacy</layout>
SNAPSHOT Datestamps
•Deprecated
<uniqueVersion>
false
</uniqueVersion>
•SNAPSHOTs now always deployed
with date-stamps
Artifact Resolution Caching
•Caches lookups whether found or missing
•Stored in:
~/.m2/repo/.../<artifact>.lastUpdated
•Sample contents:
#Last modified on: Thu Dec 31 10:42:13 MST 2009
#Thu Dec 31 10:42:13 MST 2009
http://localhost:8081/nexus/content/groups/public=12333938
•Overridden by:
mvn <phase> -U
Plugin Behavior
Changes
Core Changes: Plugins
❖Plugin version auto-selection favors
RELEASEs over SNAPSHOTs
❖Affects command-line invocation of plugins
#Maven 2.x
#Will run the newest SNAPSHOT, if one is cached locally
mvn archetype:generate
#...actually running
mvn org.apache.maven.plugins:maven-archetype-plugin:1.0-SNAPSHOT:generate
#Maven 3.x
#Will always run the newest RELEASE in Maven 3.x
mvn archetype:generate
#...actually running
mvn org.apache.maven.plugins:maven-archetype-plugin:2.0:generate
Command Line
Core Changes: Plugins
❖Plugins versions cannot be specified as
RELEASE or LATEST
❖Affects pom.xml configuration and command
line fully-qualified invocation
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-toolchains-plugin</artifactId>
<version>LATEST</version>
</plugin>
...
pom.xml
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-toolchains-plugin</artifactId>
<version>LATEST</version>
</plugin>
...
pom.xml
Core Changes: Plugins
❖Plugins only resolved from
<pluginRepository> locations
http://cwiki.apache.org/MAVEN/maven-3x-compatibility-notes.html
Site Plugin
❖Near-complete rewrite
❖Separation of <reporting> from core Maven
codebase
❖Preparation for Maven 3.1 pom.xml syntax
changes
Maven 3.0 at Øredev
Maven 3.0 at Øredev
Not a technical rant on Maven vs. Ant
mvnshell
http://shell.sonatype.org/
http://shell.sonatype.org/
Maven 3.0 at Øredev
Maven 3.0 at Øredev
What is mvnshell?
❖High performance console
❖Maven 3.x add-on
The shell and its commands
Maven 3.0 at Øredev
Color highlighting
Maven 3.0 at Øredev
Speed of Builds
Maven 3.0 at Øredev
Performance of Shell
❖220% faster in the demo
❖No JVM warm-up time
❖Strategies for caching
Subcommands, archetypes
Maven 3.0 at Øredev
polyglot
http://polyglot.sonatype.org/
http://polyglot.sonatype.org/
Maven 3.0 at Øredev
What is polyglot Maven?
❖Maven 3 superset
❖A full distribution of Maven
❖Enabled by Maven 3 embedding
❖Multi-language mvn command
What is polyglot Maven?
❖POM file converter
❖translate tool
❖Any-to-Any language translation
<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">
<modelVersion>4.0.0</modelVersion>
<groupId>com.ambientideas</groupId>
<artifactId>sample-dependency</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>Sample Project - One Dependency</name>
<url>http://github.com/matthewmccullough/maven-training/</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
pom.xml
Translating a POM from XML toYAML
Maven 3.0 at Øredev
<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">
<modelVersion>4.0.0</modelVersion>
<groupId>com.ambientideas</groupId>
<artifactId>sample-dependency</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>Sample Project - One Dependency</name>
<url>http://github.com/matthewmccullough/maven-training/</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
pom.xml
modelVersion: 4.0.0
artifactId: sample-dependency
groupId: com.ambientideas
name: Sample Project - One Dependency
packaging: jar
url: http://github.com/matthewmccullough/maven-training/
version: 1.0-SNAPSHOT
dependencies:
- {artifactId: junit, groupId: junit, optional: false, scope: test,
type: jar, version: 3.8.1}
pom.yaml
(defproject main "com.ambientideas:sample-dependency:1.0-SNAPSHOT"
:model-version "4.0.0"
:add-default-plugins false
:name "Sample Project - One Dependency"
:packaging "jar"
:url "http://github.com/matthewmccullough/maven-training/"
:test-dependencies [["junit:junit:3.8.1"]])
pom.clj
project { m =>
m.artifactId = "sample-dependency"
m.dependency { d =>
d.artifactId = "junit"
d.groupId = "junit"
d.optional = false
d.scope = "test"
d._type = "jar"
d.version = "3.8.1"
}
m.groupId = "com.ambientideas"
m.modelVersion = "4.0.0"
m.name = "Sample Project - One Dependency"
m.packaging = "jar"
m.url = "http://github.com/matthewmccullough/maven-training/"
m.version = "1.0-SNAPSHOT"
}
pom.scala
project {
modelVersion '4.0.0'
groupId 'com.ambientideas'
artifactId 'sample-dependency'
version '1.0-SNAPSHOT'
name 'Sample Project - One Dependency'
url 'http://github.com/matthewmccullough/maven-training/'
dependencies {
dependency {
groupId 'junit'
artifactId 'junit'
version '3.8.1'
scope 'test'
}
}
}
pom.groovy
Translating a POM and building from it
Maven 3.0 at Øredev
Polyglot DSLs
❖A true DSL framework
❖Maven lifecycle hooks
❖Can modify execution plan
❖Supplement the lifecycle
Polyglot Macros
❖Maven-specific macros
❖Allows for more concise POMs
❖Groovy polyglot showcasing this
❖Freeform scripting in Groovy
project {
modelVersion '4.0.0'
$artifact('com.ambientideas', 'sample-dependency’, '1.0-SNAPSHOT')
name 'Sample Project - One Dependency'
url 'http://github.com/matthewmccullough/maven-training/'
dependencies {
dependency('junit', 'junit’, '3.8.1', ‘test')
}
}
pom.groovy with macros
Where did we start from again?
<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">
<modelVersion>4.0.0</modelVersion>
<groupId>com.ambientideas</groupId>
<artifactId>sample-dependency</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>Sample Project - One Dependency</name>
<url>http://github.com/matthewmccullough/maven-training/</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
pom.xml
M2Eclipse
Maven 3.0 at Øredev
Upgrading M2Eclipse
❖Latest version, 0.10
❖Code quality improvements
❖Performance increases
❖Packaging changes
❖Two distinct update sites
❖ Core:	 	 	 http://m2eclipse.sonatype.org/sites/m2e
❖ Extensions:	 http://m2eclipse.sonatype.org/sites/m2e-extras
Eclipse Versions Supported
❖3.4
❖3.5
❖3.6
Dependencies
❖ Visualizes conflicts
❖ Graph and text form
❖ Dependency resolution tree
❖ Answers “where is X being brought in from?”
Dependency conflicts
Maven 3.0 at Øredev
Dependencies
❖ Easy exclusions
❖ Uses Eclipse refactoring engine
Exclusions
Maven 3.0 at Øredev
Class Search
❖ Search the entire central repository for
❖ Artifact
❖ Package
❖ Classname
❖ Lucene database
❖ Incremental updates
Class Search
Maven 3.0 at Øredev
Resources
Free Books
http://books.sonatype.com
Examples
❖Ambient sample projects
❖http://github.com/matthewmccullough/maven-training
❖Sonatype sample projects
❖http://www.sonatype.com/products/maven/
documentation/book-defguide
Maven 3.1
Maven 3.1
Maven 3.1 POM Changes
❖ Backwards compatibility by modelVersion
❖ Final identifier TBD for 3.1 POM syntax
❖ Allows 3.1 to read 3.0, 2.0 POMs
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.ambientideas</groupId>
<artifactId>sample-barestbones</artifactId>
<version>1.0-SNAPSHOT</version>
</project>
Maven 3.1 POM Changes
❖pom.xml syntax changes
❖Site plugin takes over <reporting>
Maven 3.1 POM Changes
❖“Mixins” for direct dependencies
❖Sometimes desired over POM inheritance
Maven 3.1 POM Changes
❖Plugin security manager
❖settings.xml as default implementation
Summary
Summary
•Validations
•Performance
•Compatibility
•Toolchain
•Shell
•Polyglot
•M2Eclipse
Maven 3.0
What’s new in
Email
Twitter
Blog
Matthew McCullough
matthewm@ambientideas.com
@matthewmccull
http://ambientideas.com/blog
Maven 3.0
What’s new in
Email
Twitter
Blog
Matthew McCullough
matthewm@ambientideas.com
@matthewmccull
http://ambientideas.com/blog
References
❖Maven 3 Core
❖ Homepage
❖ http://maven.apache.org/
❖ Source Code
❖ http://svn.apache.org/viewvc/maven/maven-3/trunk
❖ Wiki
❖ http://cwiki.apache.org/MAVEN/maven-3x.html
❖ Bug Tracking
❖ http://jira.codehaus.org/browse/MNG
❖ Compatibility
❖ http://cwiki.apache.org/MAVEN/maven-3x-compatibility-notes.html
❖ Blog Posts
❖ http://www.sonatype.com/people/2009/11/maven-3x-paving-the-desire-lines-
part-two/
❖ Bookmarks
❖ http://delicious.com/matthewmccullough/maven
❖Maven 3 Site Plugin
❖ Source Code
❖ https://svn.apache.org/repos/asf/maven/plugins/branches/
maven-site-plugin-3.x/
❖ Wiki
❖ http://cwiki.apache.org/MAVEN/maven-3x-and-site-plugin.html
❖Maven Shell
❖ Source Code
❖ http://github.com/sonatype/mvnsh/
❖ Wiki
❖ https://docs.sonatype.org/display/MVNSH
❖ Homepage
❖ http://shell.sonatype.org/
❖Polyglot Maven
❖ Homepage
❖ http://polyglot.sonatype.org/
❖ Source Code
❖ http://github.com/sonatype/polyglot-maven
❖ Wiki
❖ https://docs.sonatype.org/display/PMAVEN/
❖ Groovy Macros
❖ https://docs.sonatype.org/display/PMAVEN/Groovy
❖M2Eclipse
❖ Homepage
❖ http://m2eclipse.sonatype.org/
❖ Update Sites
❖ http://m2eclipse.sonatype.org/sites/m2e
❖ http://m2eclipse.sonatype.org/sites/m2e-extras

More Related Content

PDF
Mastering Maven 2.0 In 1 Hour V1.3
PPT
Demystifying Maven
PPTX
Apache ant
PPT
Apache Ant
PPT
Learn flask in 90mins
PPTX
Maven 2 Introduction
PPT
Apache Ant
PDF
Node.js vs Play Framework
Mastering Maven 2.0 In 1 Hour V1.3
Demystifying Maven
Apache ant
Apache Ant
Learn flask in 90mins
Maven 2 Introduction
Apache Ant
Node.js vs Play Framework

What's hot (20)

PPT
Ant - Another Neat Tool
PPT
Apache Ant
PPT
Apache ANT vs Apache Maven
PDF
The MetaCPAN VM for Dummies Part One (Installation)
ODP
CodeIgniter PHP MVC Framework
PDF
Continuous Integration Testing in Django
PDF
Dependency management with Composer
PDF
Learning Puppet Chapter 1
PDF
Cooking Perl with Chef: Real World Tutorial with Jitterbug
PPT
Introduction to Apache Ant
PDF
Deploying Symfony | symfony.cat
PPT
Introduction To Ant1
PDF
DNUG Webcast: IBM Notes V10 Performance Boost
PDF
Introduction to Apache Ant
PPTX
Apache Ant
PDF
Puppet at Pinterest
PDF
Puppet at GitHub / ChatOps
ODP
Ant User Guide
PDF
maven
PPTX
Session on Launching Selenium Grid and Running tests using docker compose and...
Ant - Another Neat Tool
Apache Ant
Apache ANT vs Apache Maven
The MetaCPAN VM for Dummies Part One (Installation)
CodeIgniter PHP MVC Framework
Continuous Integration Testing in Django
Dependency management with Composer
Learning Puppet Chapter 1
Cooking Perl with Chef: Real World Tutorial with Jitterbug
Introduction to Apache Ant
Deploying Symfony | symfony.cat
Introduction To Ant1
DNUG Webcast: IBM Notes V10 Performance Boost
Introduction to Apache Ant
Apache Ant
Puppet at Pinterest
Puppet at GitHub / ChatOps
Ant User Guide
maven
Session on Launching Selenium Grid and Running tests using docker compose and...
Ad

Viewers also liked (20)

PPT
Maven overview
ODP
Captain Agile and the Providers of Value
PDF
Alpes Jug (29th March, 2010) - Apache Maven
KEY
Building Android apps with Maven
PPTX
20091112 - Mars Jug - Apache Maven
PDF
Veni, Vide, Built: Android Gradle Plugin
PDF
Gradle enabled android project
PDF
不只自動化而且更敏捷的Android開發工具 gradle mopcon
PDF
Gradle in 45min
PDF
Lorraine JUG (1st June, 2010) - Maven
PPTX
PPTX
Maven for Dummies
PDF
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
PDF
Gradle build tool that rocks with DSL JavaOne India 4th May 2012
PDF
Gradle - the Enterprise Automation Tool
PDF
Gradle talk, Javarsovia 2010
PPTX
Drupal Continuous Integration with Jenkins - The Basics
PDF
Gradle by Example
PDF
Maven Application Lifecycle Management for Alfresco
PDF
Gradle Introduction
Maven overview
Captain Agile and the Providers of Value
Alpes Jug (29th March, 2010) - Apache Maven
Building Android apps with Maven
20091112 - Mars Jug - Apache Maven
Veni, Vide, Built: Android Gradle Plugin
Gradle enabled android project
不只自動化而且更敏捷的Android開發工具 gradle mopcon
Gradle in 45min
Lorraine JUG (1st June, 2010) - Maven
Maven for Dummies
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Gradle build tool that rocks with DSL JavaOne India 4th May 2012
Gradle - the Enterprise Automation Tool
Gradle talk, Javarsovia 2010
Drupal Continuous Integration with Jenkins - The Basics
Gradle by Example
Maven Application Lifecycle Management for Alfresco
Gradle Introduction
Ad

Similar to Maven 3.0 at Øredev (20)

PPTX
Maven 3 New Features
PPT
Maven 2 features
PDF
Build Automation using Maven
ODP
Jbossworld Presentation
PDF
Exploring Maven SVN GIT
ODP
PPTX
CoC NA 2023 - Reproducible Builds for the JVM and beyond.pptx
PDF
Svn tutorial
ODP
Intro To Version Control
PDF
KEY
From Dev to DevOps - FOSDEM 2012
PPT
PPTX
An Introduction to Maven
PDF
Apache maven, a software project management tool
PPTX
Maven in mulesoft
PPTX
Learning Maven by Example
PDF
PPTX
Version Management in Maven
PPT
Maven 2.0 - Project management and comprehension tool
PDF
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
Maven 3 New Features
Maven 2 features
Build Automation using Maven
Jbossworld Presentation
Exploring Maven SVN GIT
CoC NA 2023 - Reproducible Builds for the JVM and beyond.pptx
Svn tutorial
Intro To Version Control
From Dev to DevOps - FOSDEM 2012
An Introduction to Maven
Apache maven, a software project management tool
Maven in mulesoft
Learning Maven by Example
Version Management in Maven
Maven 2.0 - Project management and comprehension tool
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...

More from Matthew McCullough (20)

PDF
Using Git and GitHub Effectively at Emerge Interactive
PDF
All About GitHub Pull Requests
PDF
Adam Smith Builds an App
PDF
Git's Filter Branch Command
PDF
Git Graphs, Hashes, and Compression, Oh My
PDF
Git and GitHub at the San Francisco JUG
PDF
Finding Things in Git
PDF
Git and GitHub for RallyOn
PDF
Migrating from Subversion to Git and GitHub
PDF
Git Notes and GitHub
PDF
Intro to Git and GitHub
PDF
Build Lifecycle Craftsmanship for the Transylvania JUG
PDF
Git Going for the Transylvania JUG
PDF
Transylvania JUG Pre-Meeting Announcements
PDF
Game Theory for Software Developers at the Boulder JUG
PDF
Cascading Through Hadoop for the Boulder JUG
PDF
JQuery Mobile
PDF
R Data Analysis Software
PDF
Please, Stop Using Git
PDF
Dr. Strangedev
Using Git and GitHub Effectively at Emerge Interactive
All About GitHub Pull Requests
Adam Smith Builds an App
Git's Filter Branch Command
Git Graphs, Hashes, and Compression, Oh My
Git and GitHub at the San Francisco JUG
Finding Things in Git
Git and GitHub for RallyOn
Migrating from Subversion to Git and GitHub
Git Notes and GitHub
Intro to Git and GitHub
Build Lifecycle Craftsmanship for the Transylvania JUG
Git Going for the Transylvania JUG
Transylvania JUG Pre-Meeting Announcements
Game Theory for Software Developers at the Boulder JUG
Cascading Through Hadoop for the Boulder JUG
JQuery Mobile
R Data Analysis Software
Please, Stop Using Git
Dr. Strangedev

Recently uploaded (20)

PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
PPTX
Orientation - ARALprogram of Deped to the Parents.pptx
PPTX
UV-Visible spectroscopy..pptx UV-Visible Spectroscopy – Electronic Transition...
PDF
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
PPTX
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
PDF
A systematic review of self-coping strategies used by university students to ...
PPTX
202450812 BayCHI UCSC-SV 20250812 v17.pptx
PDF
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
PDF
Supply Chain Operations Speaking Notes -ICLT Program
PDF
Updated Idioms and Phrasal Verbs in English subject
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PPTX
UNIT III MENTAL HEALTH NURSING ASSESSMENT
PPTX
Cell Types and Its function , kingdom of life
PDF
Paper A Mock Exam 9_ Attempt review.pdf.
PDF
Classroom Observation Tools for Teachers
PDF
OBE - B.A.(HON'S) IN INTERIOR ARCHITECTURE -Ar.MOHIUDDIN.pdf
PDF
Anesthesia in Laparoscopic Surgery in India
PDF
What if we spent less time fighting change, and more time building what’s rig...
PDF
Practical Manual AGRO-233 Principles and Practices of Natural Farming
PDF
Module 4: Burden of Disease Tutorial Slides S2 2025
2.FourierTransform-ShortQuestionswithAnswers.pdf
Orientation - ARALprogram of Deped to the Parents.pptx
UV-Visible spectroscopy..pptx UV-Visible Spectroscopy – Electronic Transition...
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
A systematic review of self-coping strategies used by university students to ...
202450812 BayCHI UCSC-SV 20250812 v17.pptx
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
Supply Chain Operations Speaking Notes -ICLT Program
Updated Idioms and Phrasal Verbs in English subject
STATICS OF THE RIGID BODIES Hibbelers.pdf
UNIT III MENTAL HEALTH NURSING ASSESSMENT
Cell Types and Its function , kingdom of life
Paper A Mock Exam 9_ Attempt review.pdf.
Classroom Observation Tools for Teachers
OBE - B.A.(HON'S) IN INTERIOR ARCHITECTURE -Ar.MOHIUDDIN.pdf
Anesthesia in Laparoscopic Surgery in India
What if we spent less time fighting change, and more time building what’s rig...
Practical Manual AGRO-233 Principles and Practices of Natural Farming
Module 4: Burden of Disease Tutorial Slides S2 2025

Maven 3.0 at Øredev