eclipse - Trying to understand what Maven does in STS -


i have used eclipse time (just general java development) , trying understand added features sts brings, , learn spring boot development. see when create spring boot project wants me select maven or gradle build tool i'm not sure why or does.

i don't understand maven doing when i'm working in environment. eclipse compiled code , did other things me invoking compiler , never needed external build tool ant or maven or whatever.

so making maven configuration in case want build application outside eclipse environment or sts rely on external build tool?

  1. for small, "hello world", projects simple eclipse compile/debug more enough.

  2. maven "higher level" "make/makefile" (the classic c/c++ build tool) or "ant/build.xml". specifically:

why maven? benefits?

  • henning:

quick project setup, no complicated build.xml files, pom , go

all developers in project use same jar dependencies due centralized pom.

getting number of reports , metrics project "for free" reduce size of source distributions, because jars can pulled central location

  • emmanuel venisse

lot of goals available isn't necessary develop specific build process part contrary ant can reuse existing ant tasks in build process antrun plugin

  • jesse mcconnell

promotes modular design of code. making simple manage mulitple projects

it allows design laid out multiple logical parts, weaving these parts through use of dependency tracking in pom files.

enforces modular design of code. easy pay lipservice modular code, when code in seperate compiling projects impossible cross pollinate references between modules of code unless allow in dependency management... there no 'i'll , fix later' implementations.

dependency management declared. dependency management mechanism have try screw jar versioning...there none of classic problem of 'which version of vendor jar this?' , setting on existing project rips top off of existing mess if exists when forced make 'unknown' versions in repository things , running...that or lie know actual version of abc.jar.

strong typed life cycle there strong defined lifecycle software system goes thru initiation of build end... , users allowed mix , match system lifecycle instead of cobble own lifecycle..

this has additional benefit of allowing people move 1 project , speak using same vocabulary in terms of software building

  1. at higher level, maven preferred build system organizations interested in "alm" ("automated lifecycle management"), "ci" (continuous integration"), "clm" ("continuous lifecycle management") and/or "devops":

https://www.ibm.com/developerworks/community/blogs/nfrsblog/entry/devops_best_practices_a_6_part_series?lang=en

devops (a clipped compound of "development" , "operations") software development method emphasizes communication, collaboration (information sharing , web service usage), integration, automation, , measurement of cooperation between software developers , other professionals.[1][2] method acknowledges interdependence of software development, quality assurance, , operations, , aims organization rapidly produce software products , services , improve operations performance.

  1. for "serious" projects, organization (consisting of many developers, possibily distributed geographically) integrate project devops toolkit sonatype nexus or artifactory. which, in turn, typically use maven automate project build , runtime dependencies.

  2. but relatively "simple" spring projects, you'll learn appreciate convenience maven can bring builds (and corresponding junit tests).


Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -