abstra oopclass oop abstra ction inheri-tance en-capsu-lation poly-mor-phism. apache maven •build...
TRANSCRIPT
![Page 1: Abstra OOPClass OOP Abstra ction Inheri-tance En-capsu-lation Poly-mor-phism. Apache Maven •Build and manage Java project •Structure and contents are declared in Project Object](https://reader034.vdocument.in/reader034/viewer/2022051815/603c7c307f2ddc292a2531e1/html5/thumbnails/1.jpg)
MavenKuan-Ting Lai
2020/5/11
OOPClass
Abstraction
Inheri-tance
En-capsu-lation
Poly-mor-
phism
![Page 2: Abstra OOPClass OOP Abstra ction Inheri-tance En-capsu-lation Poly-mor-phism. Apache Maven •Build and manage Java project •Structure and contents are declared in Project Object](https://reader034.vdocument.in/reader034/viewer/2022051815/603c7c307f2ddc292a2531e1/html5/thumbnails/2.jpg)
![Page 3: Abstra OOPClass OOP Abstra ction Inheri-tance En-capsu-lation Poly-mor-phism. Apache Maven •Build and manage Java project •Structure and contents are declared in Project Object](https://reader034.vdocument.in/reader034/viewer/2022051815/603c7c307f2ddc292a2531e1/html5/thumbnails/3.jpg)
Apache Maven
• Build and manage Java project
• Structure and contents are declared in Project Object Model (POM) file “pom.xml”
• Requiring JDK
• Download and extract apache-maven-xxx-bin.zip
• Add maven/bin to PATH
• Running maven− mvn compile
![Page 4: Abstra OOPClass OOP Abstra ction Inheri-tance En-capsu-lation Poly-mor-phism. Apache Maven •Build and manage Java project •Structure and contents are declared in Project Object](https://reader034.vdocument.in/reader034/viewer/2022051815/603c7c307f2ddc292a2531e1/html5/thumbnails/4.jpg)
![Page 5: Abstra OOPClass OOP Abstra ction Inheri-tance En-capsu-lation Poly-mor-phism. Apache Maven •Build and manage Java project •Structure and contents are declared in Project Object](https://reader034.vdocument.in/reader034/viewer/2022051815/603c7c307f2ddc292a2531e1/html5/thumbnails/5.jpg)
Download and Set Maven Environment Variables
OS Output
Windows
Set the environment variables using system properties.M2_HOME=C:\Program Files\Apache Software Foundation\apache-maven-3.3.1M2=%M2_HOME%\bin MAVEN_OPTS=-Xms256m -Xmx512m
Linux
Open command terminal and set environment variables.export M2_HOME=/usr/local/apache-maven/apache-maven-3.3.1 exportM2=$M2_HOME/binexport MAVEN_OPTS=-Xms256m -Xmx512m
Mac
Open command terminal and set environment variables.export M2_HOME=/usr/local/apache-maven/apache-maven-3.3.1export M2=$M2_HOME/binexport MAVEN_OPTS=-Xms256m -Xmx512m
Download Maven from https://maven.apache.org/download.cgi
![Page 6: Abstra OOPClass OOP Abstra ction Inheri-tance En-capsu-lation Poly-mor-phism. Apache Maven •Build and manage Java project •Structure and contents are declared in Project Object](https://reader034.vdocument.in/reader034/viewer/2022051815/603c7c307f2ddc292a2531e1/html5/thumbnails/6.jpg)
Configuration
Item Default
source code ${basedir}/src/main/java
Resources ${basedir}/src/main/resources
Tests ${basedir}/src/test
Complied byte code ${basedir}/target
distributable JAR ${basedir}/target/classes
![Page 7: Abstra OOPClass OOP Abstra ction Inheri-tance En-capsu-lation Poly-mor-phism. Apache Maven •Build and manage Java project •Structure and contents are declared in Project Object](https://reader034.vdocument.in/reader034/viewer/2022051815/603c7c307f2ddc292a2531e1/html5/thumbnails/7.jpg)
POM Example
<project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns:xsi =
"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation =
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.companyname.project-group</groupId>
<artifactId>project</artifactId>
<version>1.0</version>
</project>
![Page 8: Abstra OOPClass OOP Abstra ction Inheri-tance En-capsu-lation Poly-mor-phism. Apache Maven •Build and manage Java project •Structure and contents are declared in Project Object](https://reader034.vdocument.in/reader034/viewer/2022051815/603c7c307f2ddc292a2531e1/html5/thumbnails/8.jpg)
Build LifecyclePhase Handles Description
prepare-resources resource copying Resource copying can be customized in this phase.
validateValidating the information
Validates if the project is correct and if all necessary information is available.
compile compilation Source code compilation is done in this phase.
Test TestingTests the compiled source code suitable for testing framework.
package packagingThis phase creates the JAR/WAR package as mentioned in the packaging in POM.xml.
install installationThis phase installs the package in local/remote maven repository.
Deploy Deploying Copies the final package to the remote repository.
![Page 9: Abstra OOPClass OOP Abstra ction Inheri-tance En-capsu-lation Poly-mor-phism. Apache Maven •Build and manage Java project •Structure and contents are declared in Project Object](https://reader034.vdocument.in/reader034/viewer/2022051815/603c7c307f2ddc292a2531e1/html5/thumbnails/9.jpg)
Build Lifecycle
• There are always pre and post phases to register goals, which must run prior to, or after a particular phase
• Maven has the following three standard lifecycles− clean
− default(or build)
− site
![Page 10: Abstra OOPClass OOP Abstra ction Inheri-tance En-capsu-lation Poly-mor-phism. Apache Maven •Build and manage Java project •Structure and contents are declared in Project Object](https://reader034.vdocument.in/reader034/viewer/2022051815/603c7c307f2ddc292a2531e1/html5/thumbnails/10.jpg)
Build Profile
• Create different settings. Ex: Production vs Development
Type Where it is defined
Per Project Defined in the project POM file, pom.xml
Per User Defined in Maven settings xml file (%USER_HOME%/.m2/settings.xml)
Global Defined in Maven global settings xml file (%M2_HOME%/conf/settings.xml)
![Page 11: Abstra OOPClass OOP Abstra ction Inheri-tance En-capsu-lation Poly-mor-phism. Apache Maven •Build and manage Java project •Structure and contents are declared in Project Object](https://reader034.vdocument.in/reader034/viewer/2022051815/603c7c307f2ddc292a2531e1/html5/thumbnails/11.jpg)
Repository
• Local
•Central
•Remote
![Page 12: Abstra OOPClass OOP Abstra ction Inheri-tance En-capsu-lation Poly-mor-phism. Apache Maven •Build and manage Java project •Structure and contents are declared in Project Object](https://reader034.vdocument.in/reader034/viewer/2022051815/603c7c307f2ddc292a2531e1/html5/thumbnails/12.jpg)
<project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.companyname.projectgroup</groupId>
<artifactId>project</artifactId>
<version>1.0</version>
<dependencies>
<dependency>
<groupId>com.companyname.common-lib</groupId>
<artifactId>common-lib</artifactId>
<version>1.0.0</version>
</dependency>
<dependencies>
<repositories>
<repository>
<id>companyname.lib1</id>
<url>http://download.companyname.org/maven2/lib1</url>
</repository>
<repository>
<id>companyname.lib2</id>
<url>http://download.companyname.org/maven2/lib2</url>
</repository>
</repositories>
</project>
![Page 13: Abstra OOPClass OOP Abstra ction Inheri-tance En-capsu-lation Poly-mor-phism. Apache Maven •Build and manage Java project •Structure and contents are declared in Project Object](https://reader034.vdocument.in/reader034/viewer/2022051815/603c7c307f2ddc292a2531e1/html5/thumbnails/13.jpg)
Maven Plugins
mvn [plugin-name]:[goal-name]
Sr.No. Plugin & Description
1 cleanCleans up target after the build. Deletes the target directory.
2 compilerCompiles Java source files.
3 surefireRuns the JUnit unit tests. Creates test reports.
4 jarBuilds a JAR file from the current project.
5 warBuilds a WAR file from the current project.
6 javadocGenerates Javadoc for the project.
7 antrunRuns a set of ant tasks from any phase mentioned of the build.
![Page 14: Abstra OOPClass OOP Abstra ction Inheri-tance En-capsu-lation Poly-mor-phism. Apache Maven •Build and manage Java project •Structure and contents are declared in Project Object](https://reader034.vdocument.in/reader034/viewer/2022051815/603c7c307f2ddc292a2531e1/html5/thumbnails/14.jpg)
Create a Project (archetype:generate)
C:\MVN>mvn archetype:generate-DgroupId = com.companyname.bank
-DartifactId = consumerBanking
-DarchetypeArtifactId = maven-archetype-quickstart-DinteractiveMode = false
![Page 15: Abstra OOPClass OOP Abstra ction Inheri-tance En-capsu-lation Poly-mor-phism. Apache Maven •Build and manage Java project •Structure and contents are declared in Project Object](https://reader034.vdocument.in/reader034/viewer/2022051815/603c7c307f2ddc292a2531e1/html5/thumbnails/15.jpg)
Build the Example App “Hello World!”
• C:\MVN\consumerBanking> mvn clean package
• cd C:\MVN\consumerBanking\target\classes>
• java com.companyname.bank.App
Hello World!
![Page 16: Abstra OOPClass OOP Abstra ction Inheri-tance En-capsu-lation Poly-mor-phism. Apache Maven •Build and manage Java project •Structure and contents are declared in Project Object](https://reader034.vdocument.in/reader034/viewer/2022051815/603c7c307f2ddc292a2531e1/html5/thumbnails/16.jpg)
External Dependencies
• Add lib folder to the src folder
• Copy any jar (ldapjdk.jar) into the lib folder
<dependency>
<groupId>ldapjdk</groupId>
<artifactId>ldapjdk</artifactId>
<scope>system</scope>
<version>1.0</version>
<systemPath>${basedir}\src\lib\ldapjdk.jar</systemPath>
</dependency>
![Page 17: Abstra OOPClass OOP Abstra ction Inheri-tance En-capsu-lation Poly-mor-phism. Apache Maven •Build and manage Java project •Structure and contents are declared in Project Object](https://reader034.vdocument.in/reader034/viewer/2022051815/603c7c307f2ddc292a2531e1/html5/thumbnails/17.jpg)
Project Documents
• mvn site
![Page 18: Abstra OOPClass OOP Abstra ction Inheri-tance En-capsu-lation Poly-mor-phism. Apache Maven •Build and manage Java project •Structure and contents are declared in Project Object](https://reader034.vdocument.in/reader034/viewer/2022051815/603c7c307f2ddc292a2531e1/html5/thumbnails/18.jpg)
Snapshots (Development Copy)
• Snapshot: Maven will download every time
• Version: Maven will only download this version once
![Page 19: Abstra OOPClass OOP Abstra ction Inheri-tance En-capsu-lation Poly-mor-phism. Apache Maven •Build and manage Java project •Structure and contents are declared in Project Object](https://reader034.vdocument.in/reader034/viewer/2022051815/603c7c307f2ddc292a2531e1/html5/thumbnails/19.jpg)
Manage DependenciesSr.No. Scope & Description
1 compileThis scope indicates that dependency is available in classpath of project. It is default scope.
2 providedThis scope indicates that dependency is to be provided by JDK or web-Server/Container at runtime.
3 runtimeThis scope indicates that dependency is not required for compilation, but is required duringexecution.
4 testThis scope indicates that the dependency is only available for the test compilation and executionphases.
5 systemThis scope indicates that you have to provide the system path.
6 importThis scope is only used when dependency is of type pom. This scope indicates that the specifiedPOM should be replaced with the dependencies in that POM's <dependencyManagement> section.
![Page 20: Abstra OOPClass OOP Abstra ction Inheri-tance En-capsu-lation Poly-mor-phism. Apache Maven •Build and manage Java project •Structure and contents are declared in Project Object](https://reader034.vdocument.in/reader034/viewer/2022051815/603c7c307f2ddc292a2531e1/html5/thumbnails/20.jpg)
Create Web Application
mvn archetype:generate -DgroupId=org.aiotlab.oop -DartifactId=myjsp -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
Folder Structure & Description
1 myjspcontains src folder and pom.xml.
2 src/main/webappcontains index.jsp and WEB-INF folder.
3 src/main/webapp/WEB-INFcontains web.xml
4 src/main/resourcesit contains images/properties files.
![Page 21: Abstra OOPClass OOP Abstra ction Inheri-tance En-capsu-lation Poly-mor-phism. Apache Maven •Build and manage Java project •Structure and contents are declared in Project Object](https://reader034.vdocument.in/reader034/viewer/2022051815/603c7c307f2ddc292a2531e1/html5/thumbnails/21.jpg)
References
• https://www.tutorialspoint.com/maven/
• https://www.tutorialspoint.com/maven/maven_intellij_idea.htm
• https://maven.apache.org/guides/getting-started/maven-in-five-minutes.html