55
Apache Maven Dev.2015 AirconChen

Apache Maven

Embed Size (px)

Citation preview

Apache MavenDev.2015

AirconChen

Apache Maven• project

• POM.xml

build( ), Dependencies( ),

SCMs( ),Release( ),Documentation( ),

Reporting( )

• build project

• project , ,

Apache Maven

• project

• plugin tools

JDKMaven Java JDK

Apache Maven Download Site2015/11/24 LastVersion:Apache Maven 3.3.9

Maven• M2_HOME=C:\Program Files\Apache Software

Foundation\apache-maven-3.2.5

• M2=%M2_HOME%\bin

• MAVEN_OPTS=-Xms256m -Xmx512m

• “;%M2%” “Path”

POM

Project Object Model (POM)

• Maven

• project build project

• Maven POM Project dependencies, plugins, goals, build profiles, project version, developers, mailing list

• POM groupId, artifactId, version Project repository Unique

Key

key

groupId com.fpg.ec

artifactId authority, bid, j2sp groupId+artifactId repository project

versionproject

groupid+artifactid repositorycom.fpg.ec:authority:1.0com.fpg.ec:authority:1.1

• project POM.xml

• POM groupId, artifactId,version

• repository groupId:artifactId:version

Super POM• POM POM

• Effective POM

Project Object Model (POM)

project project

mavenDependencies

Maven Build Lifecycle

Maven Build Lifecycle

1. validate

2. initialize

3. generate-sources

4. process-sources

5. generate-resources

6. process-resources

7. compile

7. compile

8. process-classes

9. generate-test-sources

10.process-test-sources

11.test-compile

12.process-test-classes

13.test

14.prepare-package

15.package

16.pre-integration-test

14.prepare-package

15.package

16.pre-integration-test

17.integration-test

18.post-integration-test

19.verify

20.install

21.deploy

• mvn compile, compile run

• package (JAR, WAR, EAR)maven lifecycle

Repositories

Maven Repositories

• Local Repositories

Maven

local repository default: C:\Users\{Login Account}\.m2\repository

• Central Repositories

Maven

• Remote Repositories

Maven

1. Local repositories, 2

2. Central repositories, Remote repositories 4

3. Remote repositories

4. Remote repositories

Plugin

• Maven plugin framework,task plugin

• plugin jar, WAR, EAR , javac ,, project project report

• mvn [plugin name]:[goals name]

• maven-compiler-plugin compile goal . mvn compiler:compile

• Maven plugin

• build plugins

pom.xml <build>

• reporting plugins

pom.xml <reporting>

plugin

Create project

• Maven archetype project

• Archetype maven plugin PG

• cmd mvn archetype:generate

• eclipse maven project

• JavaPath JDK JRE, package

• mvn clean package

• jar target

• target/surefire-reports

• comile test

• snapshot

maven build repositorysnapshot

• authority:1.0 authoritymaven

snapshot

Snapshot( )

• Authority package

• WAR package

Authority1.0

WARAuthority1.0-SNAPSHOT

WARAuthority1.0-SNAPSHOT

Auto Build

Dependencies

Scope

Lib1:1.0

Lib2:1.0

Lib3:1.0

Root:1.0 App-Core-lib:1.0

App-Data-lib:1.0

App-UI-WAR:1.0

• App-UI-WAR App-Core-lib App-Data-lib • Root App-Core-lib App-Data-lib parent • Root Lib1 lib2 Lib3

• archetype:generate

• maven-archetype-webapp

your artifactId

Webapp

Eclipse IDE + Maven

m2eclipse plugin

Run Web Project by Maven

1.New Maven Project

2.default workspace location

3. archetype webapp

4.Define your coordinate

5. project

servlet-api.jar

6. servlet-api dependance

7. tomcat maven plugin

http://tomcat.apache.org/maven-plugin-trunk/index.html

8.Run as > Maven build

9.Tomcat run

ModuleWeb layer project project,

web layer project POM.xml

<modules> <module> project name 1</module> <module> project name 2</module> … <module> project name N</module>

</modules>

But

Maven