• Save
Maven 3: New Features - OPITZ CONSULTING - Stefan Scheidt

Like this? Share it with your network

Share

Maven 3: New Features - OPITZ CONSULTING - Stefan Scheidt

  • 1,538 views
Uploaded 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 ...

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.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,538
On Slideshare
1,538
From Embeds
0
Number of Embeds
0

Actions

Shares
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