Your SlideShare is downloading. ×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Maven 3: New Features - OPITZ CONSULTING - Stefan Scheidt

1,146
views

Published on

Maven ist ein weit verbreitetes Tool, welches den Build und das technische Management von Java-basierten Projekten unterstützt. Fünf Jahre nach dem Release der Version 2 steht nun Maven 3 vor der Tür. …

Maven ist ein weit verbreitetes Tool, welches den Build und das technische Management von Java-basierten Projekten unterstützt. Fünf Jahre nach dem Release der Version 2 steht nun Maven 3 vor der Tür. Der Vortrag „Maven 3 New Features“ von Stefan Scheidt (OPITZ CONSULTING) stellt ausgewählte neue Features vor.

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,146
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Stefan ScheidtSolution Architect
    OPITZ CONSULTING GmbH
    Maven 3 New Features
  • 2. Wer bin ich?
    Software-Entwickler und Architekt
    Trainer und Coach
    Autor und Sprecher
  • 3. Leistungs-angebot
    Kunden
    • Branchen-übergreifend
    • 8. Über 600 Kunden
    Tätigkeits-felder
    Fakten
    • Gründung 1990
    • 13. 400 Mitarbeiter
    • 14. 8 Standorte
    Industrie / Versorger / Telekommunikation 29%
    Handel / Logistik / Dienstleistungen29%
    42%Öffentliche Auftraggeber / Banken & Versicherungen / Vereine & Verbände
  • 15. Wer sind Sie?
  • 16. Über diesen Vortrag...
  • 17. Was ist Maven?
    Ein deklarativesBuild-System
    Convention overConfiguration
    Wiederverwendung durch Plugins
    Dependency Management
    Ein Tool für technisches Projekt-Reporting
    ein „Software Project Management Tool“
  • 18. Was ist Maven?
    Ein Open-Source-Projekt bei Apache
    Ziel:
    Vereinheitlichen von
    Build, Verteilung, Projekt-Webseite
    Zweck:
    Don‘trepeatyourself!
    Siehe auch http://maven.apache.org/what-is-maven.html
  • 19. Release-Historie
    1.0 Beta 2003
    1.0 2004 / Juli
    2.0 Alpha 2005 / April
    2.0 Beta 2005 / September
    2.0 2005 / Oktober
    3.0 Alpha 2009 / Februar
    3.0 Beta 2010 / April
    3.0 2010 / Oktober
    Quelle: http://archive.apache.org/dist/maven/binaries/
  • 20. Primäre Ziele für Maven 3.0
    Refactoring der Code Base
    Interne Modularisierung
  • 21. Modularisierung
    Quelle:
    http://maven.apache.org/ref/3.0/
  • 22. Primäres Anliegen
    BackwardCompatibility
    Dafür viele Integrationstests
    Siehehttps://grid.sonatype.org/ci/view/Maven/job/maven-3.0.x-ITs/
  • 23. Compatibility Notes
    https://cwiki.apache.org/MAVEN/maven-3x-compatibility-notes.html
    No moreprofiles.xml
    Support forprofilesoutside of the POM
    orthesettings.xml has beenremoved
    Advise: moveaffectedprofilesintosettings.xml
    (Hint: mvn--settingssome/settings/file.xml)
  • 24. Compatibility Notes
    Stricter POM Validation
    More Errors
    MoreWarnings
    Explanationsbased on Exceptions
    Links to MavenWiki
    https://cwiki.apache.org/confluence/display/MAVEN/Errors+and+Solutions
  • 25. Compatibility Notes
    Dependency Resolution fromLocalRepository
    buildscanonlyaccesslocallycachedartifacts
    iftheyhavethe proper repositoriesconfigured
    (Maven 3 keepstrack of artifactorigin)
  • 26. Einschub: Aether
    A libraryforinteractingwith
    artifactrepositories
    Local / remote Repositories
    Workspaces
    Transport
    Artifact Resolution
  • 27. Einschub: Maven benutzt Aether
  • 28. Einschub: Aether – Ziele
    „Wewant to ensurethatprojectsbuilding
    with SBT, Leinigen, Gradle, Buildr, Ant,
    or a homegrownsysteminteroperate
    reliablywithMavenrepositories.“
    Jason van Zyl, Aetherquestionsansweredfor JAX
  • 29. Compatibility Notes
    ClassPathIssues
    Maven 3 usingAether
    canresult in different classpaths
    Warning: mvndependency:tree
    still useslegacyresolutioncode!
    (Hint: usemvn--debug)
  • 30. Compatibility Notes
    PluginRepositories
    Buildextensions, plugins and plugindependenciesareonlyresolvedfrom<pluginRepositories>
    (and no longerfrom<repositories>)
  • 31. Compatibility Notes
    Plugin Version Resolution
    automaticpluginversionresolution
    isscheduledfor removal
    Till then: latestreleaseversionisused,
    notlatestsnapshotversion
  • 32. Compatibility Notes
    SnapshotDeployments
    snapshotartifacts will alwaysbedeployed
    using a timestampedversion
    (<uniqueVersion>false</uniqueVersion> has no effect)
  • 33. Compatibility Notes
    Site Generation
    All reportingrelatedcode
    has beenremovedfromMavencore
    ThereforeonemustuseMaven Site Plugin 3.x
    Siehe https://cwiki.apache.org/MAVEN/maven-3x-and-site-plugin.html
  • 34. Compatibility Notes
    Configuration of reportingplugins
    pluginconfiguration in <reporting>
    no longeraffectsplugins in <build>
    (whenexecuting a pluginduringbuildlifecycleorfromcli,
    onlyconfigurationfrom<build>isconsidered)
  • 35. PluginCompatibility
    PluginCompatibility Matrix
    https://cwiki.apache.org/MAVEN/maven-3x-plugin-compatibility-matrix.html
    Reporting PluginsCompatibility Matrix
    https://cwiki.apache.org/MAVEN/maven-3x-and-site-plugin.html
  • 36. Maven Shell
    http://shell.sonatype.org/
    https://docs.sonatype.org/display/MVNSH/Home
    CLI forMaven
    standalone Java process
    keepsPOMs in memoryforfasterbuilds
    replacesmaven-cli-plugin
  • 37. Performance
  • 38. Performance: Parallel builds
    https://cwiki.apache.org/confluence/display/MAVEN/Parallel+builds+in+Maven+3
    Experimental Feature since 3.0 Beta 1
    mvn -T 4 clean install # Buildswith 4 threads
 mvn -T 1C clean install # 1 thread per cpucore
 mvn -T 1.5C clean install # 1.5 thread per core
    „20-50% speedimprovementisquitecommon“
    Depends on distribution of tests
  • 39. Maven 3 und IDEs
    Major Java IDEs allreadyinclude
    (someversion of) Maven 3
    Eclipse via m2eclipse, IntelliJ, NetBeans
    Still no supportby Oracle JDeveloper
  • 40. Maven 3 und CI-Systeme
    Hudson
    No supportforMaven 3 yet, voteforhttp://issues.hudson-ci.org/browse/HUDSON-4988
    WorkAround: Free Style Projects
    Shell Command:
    export M2_HOME=/path/to/apache-maven-3.0-beta-3
    export M2=$M2_HOME/bin
    export PATH=$M2:$PATH
    cd someproject
    mvn clean install
  • 41. Maven 3 und CI-Systeme
    Teamcity
    No Support in Teamcity 5
    Support announcedfor Teamcity 6
  • 42. Maven 3 und Sonar
    Sonar 2.2 supportsMaven 3
    Butyouneed to use sonar-maven3-plugin:2.2
    (mvn org.codehaus.sonar:sonar-maven3-plugin:2.2:sonar)
    Siehe http://www.sonatype.com/people/2010/08/maven-3-and-sonar/
  • 43. PolyglotMaven
    http://polyglot.sonatype.org/
  • 44. Ausblicke
    m2eclipse will move to eclipse.org
    Release of m2eclipse 1.0 „soon“
    Release of mvnsh „fairlysoon“
    newphase of work on PolyglotMaven
    OSGiruntime in futurerelease
  • 45. Ausblicke: Maven 3.1
    POM format 4.1
    Global excludes
    Versionlessparentelements
    Mixins
    New settingssystem
    New Plugin API
  • 46. Ausblicke - Quellen
    http://java.profict.nl/presentaties/maven.pdf
    http://www.sonatype.com/people/↵⌫2010/10/maven-3-0-has-landed/
    http://www.infoq.com/news/2010/10/↵⌫maven-30-released
    Siehe auch
    https://sonatype.webex.com/sonatype/lsr.php?↵⌫
    AT=pb&SP=EC&rID=46805542&rKey=3f773d348b2df17b
  • 47. Fazit
    „Weseethis as a newbeginningforMaven“
    Jason van Zyl
  • 48. Fragen und Antworten
  • 49. Kontakt
    Stefan Scheidt
    Solution Architect
    OPITZ CONSULTING GmbHKirchstr. 6, 51647 GummersbachTel. +49 (2261) 6001 - 0stefan.scheidt@opitz-consulting.com