maven
play

Maven git clone https://github.com/jonananas/maven-examples.git - PowerPoint PPT Presentation

Maven git clone https://github.com/jonananas/maven-examples.git Build automation Tools Automates braindraining repetitive work compiling testing creating artifacts Ensures automatic repeatable builds!


  1. Maven git clone https://github.com/jonananas/maven-examples.git Build automation Tools • Automates braindraining repetitive work ● compiling ● testing ● creating artifacts • Ensures automatic repeatable builds! • List_of_build_automation_software Make • Ant • • Maven npm • • Gradle SBT • • … Repeatable builds • Correct target platform • Correct source encoding • Correct dependencies incl versions • Correct tools including versions • Builds on every source platform • …

  2. Build automation Tools • Enabler for automated ● Continuous Integration ● Continuous Delivery ● Continuous Deployment Build Server − Monitors source repository − Triggers on each commit − Runs command (maven, bash, …) − Keeps history − Notifies failure/Success − Examples • Bamboo (Atlassian) • Jenkins (OpenSource) • TeamCity (JetBrains) Maven • Enables repeatable builds • Cleans up from earlier builds Puts dependencies on classpath • Compiles all code • Runs all tests • • Creates artifact, example project-jar-0.0.1-SNAPSHOT.jar • Deploys maven repository and source repository • Deploys to server • IDE agnostic way of configuring project (Intellij, Eclipse, …) • Filters resources • Runs static analysis tools − Coverage reports • And more!

  3. Maven • dependency management • maven coordinates • packaging • build phases • plugins • scopes • project structure • project file - pom.xml • commands • NyA pom.xml • pom - Project Object Model • Information and configuration details required to build project Properties • DRY - Don’t repeat yourself

  4. Dependency management Maven coordinates • < dependency > 
 < groupId >junit</ groupId > 
 < artifactId >junit</ artifactId > 
 < version >4.8.1</ version > 
 </ dependency > 
 • https://mvnrepository.com/artifact/junit/junit/4.8.1 • ~/.m2/repository/junit/junit/4.8.1 dependencyManagement • Decides which version of a dependency will be used • Inherited

  5. Example dependency-resolution project structure • project-root/ ● pom.xml ● src/main/java ● src/main/resources ● src/test/java ● src/test/resources ● target ● cd project; find src Example • Multimodule

  6. Packaging • packaging ● pom ● jar - default ● war ● ear Build phases • Default lifecycle ● validate - validate project ● compile - compile sources ● test - run tests ● package - package in distributable format ● verify - check quality criteria ● install - copy into local repository ● deploy - copy to remote repository Build phases ● Clean lifecycle ● clean - removes all temporary files (target)

  7. Plugins • plugin ● goal —> phase • maven-compiler-plugin ● compiler:compile —> compile • maven-resources-plugin ● resources:resources —> process-resources ● maven-surefire-plugin ● surefire:test —> test Commands • Import into eclipse • mvn clean • mvn test • mvn package • mvn install • mvn exec:java • mvn deploy • mvn release:prepare; mvn release:perform nya-master/3pp/tools/maven/bin/mvn pluginManagement • Decides which version of a plugin will be used • Inherited! <pluginManagement> <plugins> <plugin> <artifactId>maven-antrun-plugin</artifactId> <version>1.3</version> </plugin> •

  8. Example • maven-examples effective pom bom • bom - Bill of Materials • List of several dependencies that will work together • Can be imported in dependencyManagement Scopes • Each dependency has a scope, compile by default • compile - transitive, compile, test, run phases • provided - non-transitive, compile, test phases • runtime - transitive, run, test phases • test - non-transitive, test phases • import - import dependencyManagement from bom

  9. Example scopes Example • parent och scopes Film inför 24/4 The Magic Tricks of Testing by Sandi Metz 32 min https://www.youtube.com/watch?v=URSWYvyc42M För tips om hur man undviker sköra tester

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend