Maven · Features Standardized directory structure Declarative dependency management Plug-ins...
Transcript of Maven · Features Standardized directory structure Declarative dependency management Plug-ins...
![Page 1: Maven · Features Standardized directory structure Declarative dependency management Plug-ins Uniform build abstraction ... 1.2](https://reader033.fdocuments.in/reader033/viewer/2022042303/5ece1cbe4e62f12d2a56554b/html5/thumbnails/1.jpg)
MavenOOP 2018
![Page 2: Maven · Features Standardized directory structure Declarative dependency management Plug-ins Uniform build abstraction ... 1.2](https://reader033.fdocuments.in/reader033/viewer/2022042303/5ece1cbe4e62f12d2a56554b/html5/thumbnails/2.jpg)
What is Maven Open-source project management framework
Simplifies building, testing and packaging
Standard way of building projects
Sharing generated artifacts across projects
Version 1.0 released in 2004
![Page 3: Maven · Features Standardized directory structure Declarative dependency management Plug-ins Uniform build abstraction ... 1.2](https://reader033.fdocuments.in/reader033/viewer/2022042303/5ece1cbe4e62f12d2a56554b/html5/thumbnails/3.jpg)
Features Standardized directory structure
Declarative dependency management
Plug-ins
Uniform build abstraction
Tools support
Archetypes
![Page 4: Maven · Features Standardized directory structure Declarative dependency management Plug-ins Uniform build abstraction ... 1.2](https://reader033.fdocuments.in/reader033/viewer/2022042303/5ece1cbe4e62f12d2a56554b/html5/thumbnails/4.jpg)
Standardized directory structure
project root folder - pom.xml - src - main - java - test - java - target
![Page 5: Maven · Features Standardized directory structure Declarative dependency management Plug-ins Uniform build abstraction ... 1.2](https://reader033.fdocuments.in/reader033/viewer/2022042303/5ece1cbe4e62f12d2a56554b/html5/thumbnails/5.jpg)
Dependency identification
groupId● Organization/group identifier
artifactId● Artifact identifier● Unique among the projects using the same groupId
version
<dependency> <groupId>commons-cli</groupId> <artifactId>commons-cli</artifactId> <version>1.2</version></dependency>
![Page 6: Maven · Features Standardized directory structure Declarative dependency management Plug-ins Uniform build abstraction ... 1.2](https://reader033.fdocuments.in/reader033/viewer/2022042303/5ece1cbe4e62f12d2a56554b/html5/thumbnails/6.jpg)
Dependency identification
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>LATEST</version></dependency>
<dependency> <groupId>com.icegreen</groupId> <artifactId>greenmail</artifactId> <version>1.5.5</version> <scope>test</scope></dependency>
![Page 7: Maven · Features Standardized directory structure Declarative dependency management Plug-ins Uniform build abstraction ... 1.2](https://reader033.fdocuments.in/reader033/viewer/2022042303/5ece1cbe4e62f12d2a56554b/html5/thumbnails/7.jpg)
Statistics
![Page 8: Maven · Features Standardized directory structure Declarative dependency management Plug-ins Uniform build abstraction ... 1.2](https://reader033.fdocuments.in/reader033/viewer/2022042303/5ece1cbe4e62f12d2a56554b/html5/thumbnails/8.jpg)
Create new maven project
![Page 9: Maven · Features Standardized directory structure Declarative dependency management Plug-ins Uniform build abstraction ... 1.2](https://reader033.fdocuments.in/reader033/viewer/2022042303/5ece1cbe4e62f12d2a56554b/html5/thumbnails/9.jpg)
Set artifactId, groupId & version
![Page 10: Maven · Features Standardized directory structure Declarative dependency management Plug-ins Uniform build abstraction ... 1.2](https://reader033.fdocuments.in/reader033/viewer/2022042303/5ece1cbe4e62f12d2a56554b/html5/thumbnails/10.jpg)
Set project name & location
![Page 11: Maven · Features Standardized directory structure Declarative dependency management Plug-ins Uniform build abstraction ... 1.2](https://reader033.fdocuments.in/reader033/viewer/2022042303/5ece1cbe4e62f12d2a56554b/html5/thumbnails/11.jpg)
Confirm
![Page 12: Maven · Features Standardized directory structure Declarative dependency management Plug-ins Uniform build abstraction ... 1.2](https://reader033.fdocuments.in/reader033/viewer/2022042303/5ece1cbe4e62f12d2a56554b/html5/thumbnails/12.jpg)
Open pom.xml Enable auto-import (IDEA)
![Page 13: Maven · Features Standardized directory structure Declarative dependency management Plug-ins Uniform build abstraction ... 1.2](https://reader033.fdocuments.in/reader033/viewer/2022042303/5ece1cbe4e62f12d2a56554b/html5/thumbnails/13.jpg)
![Page 14: Maven · Features Standardized directory structure Declarative dependency management Plug-ins Uniform build abstraction ... 1.2](https://reader033.fdocuments.in/reader033/viewer/2022042303/5ece1cbe4e62f12d2a56554b/html5/thumbnails/14.jpg)
Add dependecy <dependencies> <dependency> <groupId>commons-cli</groupId> <artifactId>commons-cli</artifactId> <version>1.2</version> </dependency></dependencies>
![Page 15: Maven · Features Standardized directory structure Declarative dependency management Plug-ins Uniform build abstraction ... 1.2](https://reader033.fdocuments.in/reader033/viewer/2022042303/5ece1cbe4e62f12d2a56554b/html5/thumbnails/15.jpg)
![Page 16: Maven · Features Standardized directory structure Declarative dependency management Plug-ins Uniform build abstraction ... 1.2](https://reader033.fdocuments.in/reader033/viewer/2022042303/5ece1cbe4e62f12d2a56554b/html5/thumbnails/16.jpg)
Create package (if missing)
In folder src/main/java
Create package<groupId>.<artifactId>
![Page 17: Maven · Features Standardized directory structure Declarative dependency management Plug-ins Uniform build abstraction ... 1.2](https://reader033.fdocuments.in/reader033/viewer/2022042303/5ece1cbe4e62f12d2a56554b/html5/thumbnails/17.jpg)
![Page 18: Maven · Features Standardized directory structure Declarative dependency management Plug-ins Uniform build abstraction ... 1.2](https://reader033.fdocuments.in/reader033/viewer/2022042303/5ece1cbe4e62f12d2a56554b/html5/thumbnails/18.jpg)
Create Main (if missing)
In folder src/main/java/<packagename>
![Page 19: Maven · Features Standardized directory structure Declarative dependency management Plug-ins Uniform build abstraction ... 1.2](https://reader033.fdocuments.in/reader033/viewer/2022042303/5ece1cbe4e62f12d2a56554b/html5/thumbnails/19.jpg)
![Page 20: Maven · Features Standardized directory structure Declarative dependency management Plug-ins Uniform build abstraction ... 1.2](https://reader033.fdocuments.in/reader033/viewer/2022042303/5ece1cbe4e62f12d2a56554b/html5/thumbnails/20.jpg)
Use imported dependency(static methods used for simplicity!)
private static CommandLineParser parser = new BasicParser();private static Options options = new Options();
public static void main(String[] args) { try { parseArgumentValue(args); } catch (ParseException e) { printParseException(e); }}
private static void parseArgumentValue(String[] args) throws ParseException { CommandLine commandLine = parseCommands(args); System.out.println("a=" + commandLine.getOptionValue("a"));}
private static CommandLine parseCommands(String[] args) throws ParseException { options.addOption("a", true, "an argument"); return parser.parse(options, args);}
private static void printParseException(ParseException e) { System.out.println(e.getMessage()); System.out.println("Usage: java -jar -a <value>");}
![Page 21: Maven · Features Standardized directory structure Declarative dependency management Plug-ins Uniform build abstraction ... 1.2](https://reader033.fdocuments.in/reader033/viewer/2022042303/5ece1cbe4e62f12d2a56554b/html5/thumbnails/21.jpg)
![Page 22: Maven · Features Standardized directory structure Declarative dependency management Plug-ins Uniform build abstraction ... 1.2](https://reader033.fdocuments.in/reader033/viewer/2022042303/5ece1cbe4e62f12d2a56554b/html5/thumbnails/22.jpg)
Create run configuration
Set program arguments to:-a 10
or execute jar from command linejava -jar <name>.jar -a 10
![Page 23: Maven · Features Standardized directory structure Declarative dependency management Plug-ins Uniform build abstraction ... 1.2](https://reader033.fdocuments.in/reader033/viewer/2022042303/5ece1cbe4e62f12d2a56554b/html5/thumbnails/23.jpg)
![Page 24: Maven · Features Standardized directory structure Declarative dependency management Plug-ins Uniform build abstraction ... 1.2](https://reader033.fdocuments.in/reader033/viewer/2022042303/5ece1cbe4e62f12d2a56554b/html5/thumbnails/24.jpg)
Run
![Page 25: Maven · Features Standardized directory structure Declarative dependency management Plug-ins Uniform build abstraction ... 1.2](https://reader033.fdocuments.in/reader033/viewer/2022042303/5ece1cbe4e62f12d2a56554b/html5/thumbnails/25.jpg)
![Page 26: Maven · Features Standardized directory structure Declarative dependency management Plug-ins Uniform build abstraction ... 1.2](https://reader033.fdocuments.in/reader033/viewer/2022042303/5ece1cbe4e62f12d2a56554b/html5/thumbnails/26.jpg)
Further reading Varanasi, B., Belida, S.: Introducing Maven. Apress (2014)
Sonatype Company: Maven: The Definitive Guide. O'Reilly Media, Inc. (2008)