SlideShare a Scribd company logo
Using Maven to build Java & Android
program
Kewang
2
Install Maven
● Download from [HERE]
(http://maven.apache.org/download.cgi)
– Or apt-get / yum / brew ......
● Add env.
– M2_HOME=/opt/maven
– M2=$M2_HOME/bin
● Run mvn --version
– verify mvn is installed correctly.
3
About me
●
王慕羣 (Kewang)
● Skills
– Android
– AWS (EC2, S3, DynamoDB)
– Hadoop (HBase, MapReduce)
– Node.js, Rails
● Company
– Mitake Inc.
● Others
– Google Play, GitHub, slideshare, Scribd
Maven
5
Maven's objectives
● Making the build process easy
● Providing a uniform build system
● Providing quality project information
● Providing guidelines for best practices development
● Allowing transparent migration to new features
6
Maven can manage ...
● Builds
● Documentation
● Reporting
● Dependencies
● SCMs
● Releases
● Distribution
7
Maven's concepts
● Project Object Model
● Convention over Configuration (CoC)
● Dependency management
● Plugin-based architecture
8
Project Object Model
9
Project Object Model
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>my-app</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
10
Convention over Configuration
11
Convention over Configuration
<sourceDirectory>/tmp/tts/src</sourceDirectory>
<scriptSourceDirectory>/tmp/tts/src/main/scripts</scriptSourceDirectory>
<testSourceDirectory>/tmp/tts/src/test/java</testSourceDirectory>
<outputDirectory>/tmp/tts/target/classes</outputDirectory>
<testOutputDirectory>/tmp/tts/target/test-classes</testOutputDirectory>
<resources>
<resource>
<directory>/tmp/tts/src/main/resources</directory>
</resource>
</resources>
<testResources>
<testResource>
<directory>/tmp/tts/src/test/resources</directory>
</testResource>
</testResources>
mvn help:effective-pom
12
Convention over Configuration
<sourceDirectory>/tmp/tts/src</sourceDirectory>
<scriptSourceDirectory>/tmp/tts/src/main/scripts</scriptSourceDirectory>
<testSourceDirectory>/tmp/tts/src/test/java</testSourceDirectory>
<outputDirectory>/tmp/tts/target/classes</outputDirectory>
<testOutputDirectory>/tmp/tts/target/test-classes</testOutputDirectory>
<resources>
<resource>
<directory>/tmp/tts/src/main/resources</directory>
</resource>
</resources>
<testResources>
<testResource>
<directory>/tmp/tts/src/test/resources</directory>
</testResource>
</testResources>
mvn help:effective-pom
13
Dependency management
14
Dependency management
<dependencies>
<dependency>
<groupId>android</groupId>
<artifactId>android</artifactId>
<version>2.3.3_r2</version>
<scope>provided</scope>
</dependency>
</dependencies>
15
Dependency management
<dependencies>
<dependency>
<groupId>android</groupId>
<artifactId>android</artifactId>
<version>2.3.3_r2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.squareup.picasso</groupId>
<artifactId>picasso</artifactId>
<version>2.2.0</version>
</dependency>
</dependencies>
16
Plugin-based architecture
17
Plugin-based architecture
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<mainClass>com.mycompany.example.App</mainClass>
</configuration>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
Maven lifecycle &
commands
19
Maven lifecycle
20
Maven commands
● mvn clean
– Remove all previous build generated files.
● mvn compile
– Compile the source code of the project.
● mvn test
– Run tests using a suitable unit testing framework.
● mvn package
– Package compiled code to distributable format.
● mvn install
– Install the package into the local repository.
● mvn deploy
– Copy the final package to the remote repository.
Build a simple
Java project
22
Step by step
● Normalize directory structure
● Write pom.xml
● Run it
23
Normalize directory structure
24
Or maven-archetype-quickstart
mvn archetype:generate
-DgroupId=com.mycompany.app
-DartifactId=my-app
-DarchetypeArtifactId=maven-archetype-quickstart
-DinteractiveMode=false
25
Write pom.xml
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>my-app</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
26
mvn clean compile
27
mvn clean compile
only
compiled
class
28
mvn clean package
29
mvn clean package
include
test file,
jar file...
but it can't run ...
31
mvn clean compile exec:java
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<mainClass>com.mycompany.example.App</mainClass>
</configuration>
</plugin>
</plugins>
</build>
32
mvn clean compile exec:java
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<mainClass>com.mycompany.example.App</mainClass>
</configuration>
</plugin>
</plugins>
</build>
remember assign <mainClass/>
Live DEMO
Apply Maven to
Android
35
Project directory structure
36
Step by step
● Install Android SDK
● Run Maven Android SDK Deployer
● Write pom.xml
● Run it
37
Install Android SDK, at least ...
● All versions SDK Platform
● All versions Google APIs
● All Extra items (including obsoleted)
● Glass Development Kit Sneak Peek
38
Run Maven Android SDK Deployer
● Checkout mosabua/maven-android-sdk-deployer
● mvn install
39
Run Maven Android SDK Deployer
● Checkout mosabua/maven-android-sdk-deployer
● mvn install
copy all jar files to maven repository
40
Use Android libraries like ...
<dependency>
<groupId>android</groupId>
<artifactId>android</artifactId>
<version>4.4_r1</version>
<scope>provided</scope>
</dependency>
41
Use Android libraries like ...
<dependency>
<groupId>android</groupId>
<artifactId>android</artifactId>
<version>4.4_r1</version>
<scope>provided</scope>
</dependency>
"provided" stands for only
compile, not package itself
42
Use Android libraries like ...
<dependency>
<groupId>com.google.android.maps</groupId>
<artifactId>maps</artifactId>
<version>19_r1</version>
<scope>provided</scope>
</dependency>
43
Use Android libraries like ...
<dependency>
<groupId>android.support</groupId>
<artifactId>compatibility-v13</artifactId>
<version>19.0.1</version>
</dependency>
Write pom.xml
45
<project> tags
<packaging>apk</packaging>
46
<dependencies> tags
<dependency>
<groupId>android</groupId>
<artifactId>android</artifactId>
<version>4.0_r3</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>android.support</groupId>
<artifactId>compatibility-v4</artifactId>
<version>19.0.1</version>
</dependency>
47
<plugins> tags
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>3.8.1</version>
<extensions>true</extensions>
<configuration>
<sdk>
<platform>14</platform>
</sdk>
</configuration>
</plugin>
48
mvn clean package
49
mvn clean package
generates R.java
50
mvn android:deploy android:run
● mvn android:deploy
– Install app to device
● mvn android:run
– Run app at device
Live DEMO
52
android-maven-plugin FAQ
53
android-maven-plugin FAQ
● No Android SDK path could be found.
54
android-maven-plugin FAQ
● No Android SDK path could be found.
– no ANDROID_HOME env., or value is incorrect
● set ANDROID_HOME env. to Android SDK path
55
android-maven-plugin FAQ
● No Android SDK path could be found.
– no ANDROID_HOME env., or value is incorrect
● set ANDROID_HOME env. to Android SDK path
● Unknown packaging: apk
56
android-maven-plugin FAQ
● No Android SDK path could be found.
– no ANDROID_HOME env., or value is incorrect
● set ANDROID_HOME env. to Android SDK path
● Unknown packaging: apk
– no extensions tag, or value is not "true"
● <extensions>true</extensions>
57
android-maven-plugin FAQ
● No Android SDK path could be found.
– no ANDROID_HOME env., or value is incorrect
● set ANDROID_HOME env. to Android SDK path
● Unknown packaging: apk
– no extensions tag, or value is not "true"
● <extensions>true</extensions>
● package R does not exist
58
android-maven-plugin FAQ
● No Android SDK path could be found.
– no ANDROID_HOME env., or value is incorrect
● set ANDROID_HOME env. to Android SDK path
● Unknown packaging: apk
– no extensions tag, or value is not "true"
● <extensions>true</extensions>
● package R does not exist
– <packaging>jar</packaging>
● <packaging>apk</packaging>
59
android-maven-plugin FAQ
● No Android SDK path could be found.
– no ANDROID_HOME env., or value is incorrect
● set ANDROID_HOME env.to Android SDK path
● Unknown packaging: apk
– no extensions tag, or value is not "true"
● <extensions>true</extensions>
● package R does not exist
– <packaging>jar</packaging>
● <packaging>apk</packaging>
● Ill-advised or mistaken usage of a core class
60
android-maven-plugin FAQ
● No Android SDK path could be found.
– no ANDROID_HOME env., or value is incorrect
● set ANDROID_HOME env. to Android SDK path
● Unknown packaging: apk
– no extensions tag, or value is not "true"
● <extensions>true</extensions>
● package R does not exist
– <packaging>jar</packaging>
● <packaging>apk</packaging>
● Ill-advised or mistaken usage of a core class
– no scope tag, or value is not "provided"
● <scope>provided</scope>
Eclipse tips
IMPORTANT !!!
62
Tips - How to use src folder ?
63
Tips - How to use src folder ?
<build>
<sourceDirectory>src</sourceDirectory>
</build>
64
Tips - How to use libs folder ?
65
Tips - How to use libs folder ?
● mvn install:install-file
– -Dfile=<path-to-file>
– -DgroupId=<group-id>
– -DartifactId=<artifact-id>
– -Dversion=<version>
– -Dpackaging=jar
66
Tips - How to use libs folder ?
● mvn install:install-file
– -Dfile=<path-to-file>
– -DgroupId=<group-id>
– -DartifactId=<artifact-id>
– -Dversion=<version>
– -Dpackaging=jar
● mvn install:install-file -Dfile=flappybird.jar
-DgroupId=tw.kewang -DartifactId=flappybird
-Dversion=1.0 -Dpackaging=jar
67
Tips - How to use libs folder ?
● mvn install:install-file
– -Dfile=<path-to-file>
– -DgroupId=<group-id>
– -DartifactId=<artifact-id>
– -Dversion=<version>
– -Dpackaging=jar
● mvn install:install-file -Dfile=flappybird.jar
-DgroupId=tw.kewang -DartifactId=flappybird
-Dversion=1.0 -Dpackaging=jar
copy jar file to
maven repository
68
Tips - How to use gen folder ?
69
Tips - How to use gen folder ?
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<configuration>
<genDirectory>gen</genDirectory>
</configuration>
</plugin>
70
Tips - How to use gen folder ?
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<configuration>
<genDirectory>gen</genDirectory>
</configuration>
</plugin>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.5</version>
<configuration>
<filesets>
<fileset>
<directory>gen</directory>
</fileset>
</filesets>
</configuration>
</plugin>
71
Tips - How to use gen folder ?
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<configuration>
<genDirectory>gen</genDirectory>
</configuration>
</plugin>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.5</version>
<configuration>
<filesets>
<fileset>
<directory>gen</directory>
</fileset>
</filesets>
</configuration>
</plugin>
remember clean gen folder
72
Tips - How to clean bin folder ?
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.5</version>
<configuration>
<filesets>
<fileset>
<directory>bin</directory>
</fileset>
</filesets>
</configuration>
</plugin>
73
Tips - How to use library project ?
74
Tips - How to use library project ?
● Write pom.xml at library project as general
Android project
75
Tips - How to use library project ?
● Write pom.xml at library project as general
Android project
● mvn clean android:apklib
– Apklib file includes src/main/java, libs & res directory
76
Tips - How to use library project ?
● Write pom.xml at library project as general
Android project
● mvn clean android:apklib
– Apklib file includes src/main/java, libs & res directory
● Use install goal to copy apklib to maven repository
77
Tips - How to use library project ?
● Write pom.xml at library project as general
Android project
● mvn clean android:apklib
– Apklib file includes src/main/java, libs & res directory
● Use install goal to copy apklib to maven repository
● Add dependency at main project
<dependency>
<groupId>tw.kewang.ui.captchaview</groupId>
<artifactId>CaptchaView</artifactId>
<version>1.0.0</version>
<type>apklib</type>
</dependency>
78
Tips - How to use non-maven library ?
● Compress non-maven library to zip file
79
Tips - How to use non-maven library ?
● Compress non-maven library to zip file
● Use install goal to copy zip to maven repository
– packaging=apklib
80
Tips - How to use non-maven library ?
● Compress non-maven library to zip file
● Use install goal to copy zip to maven repository
– packaging=apklib
● Add dependency at main project
<dependency>
<groupId>tw.kewang.ui.captchaview</groupId>
<artifactId>CaptchaView</artifactId>
<version>1.0.0</version>
<type>apklib</type>
</dependency>
Show Time
github://kewangtw
82
Show Time - google-tts
tts.say(sentence, true, new OnFinishListener() {
@Override
public void onFinish() {
Toast.makeText(this, sentence, Toast.LENGTH_SHORT).show();
}
});
83
Show Time - map-controller
mc.startTrackMyLocation(new ChangeMyLocation() {
@Override
public void changed(GoogleMap map, Location location) {
Log.d("TRACK", location.toString());
}
});
mc.whenMapClick(new ClickCallback() {
@Override
public void clicked(GoogleMap map, LatLng latLng) {
Log.d("CLICK", latLng.toString());
}
});
84
Show Time - CaptchaView
captcha.setPattern("1234567890");
captcha.setLength(6);
captcha.refresh();
if (captcha.getCaptcha().equals(check)) {
Log.d("CAPTCHA", "Success");
} else {
Log.d("CAPTCHA", "Fail");
}
85
Show Time - tile
<tw.kewang.tile.Tile>
<tw.kewang.tile.TileGroup
tile:maxCells="3"
tile:x="450dp"
tile:y="50dp" >
<tw.kewang.tile.TileCell
tile:x="50dp"
tile:y="50dp" />
<tw.kewang.tile.TileCell
tile:x="100dp"
tile:y="150dp" />
</tw.kewang.tile.TileGroup>
</tw.kewang.tile.Tile>
tile2.setOnCellLongClickListener(new OnLongClickListener() {
@Override
public void onLongClick(TileGroup group, TileCell cell) {
tile2.startDrag();
}
});
86
References
● Apache Maven Project
● Android Application Development with Maven
● Android Maven Plugin
● Maven Android SDK Deployer
87

More Related Content

Viewers also liked (20)

Installing java, eclipse and maven
Installing java, eclipse and mavenInstalling java, eclipse and maven
Installing java, eclipse and maven
inTwentyEight Minutes
 
Presenter manual oracle dba (specially for summer interns)
Presenter manual oracle dba (specially for summer interns)Presenter manual oracle dba (specially for summer interns)
Presenter manual oracle dba (specially for summer interns)
XPERT INFOTECH
 
Java, Eclipse, Maven & JSF tutorial
Java, Eclipse, Maven & JSF tutorialJava, Eclipse, Maven & JSF tutorial
Java, Eclipse, Maven & JSF tutorial
Raghavan Mohan
 
Database management system chapter13
Database management system chapter13Database management system chapter13
Database management system chapter13
Pranab Dasgupta
 
Oracle - Introduction
Oracle - IntroductionOracle - Introduction
Oracle - Introduction
CompleteITProfessional
 
KeyLabsTraining - Courses
KeyLabsTraining - CoursesKeyLabsTraining - Courses
KeyLabsTraining - Courses
Chinna Botla
 
Database management system chapter1
Database management system chapter1Database management system chapter1
Database management system chapter1
Pranab Dasgupta
 
Database management system chapter5
Database management system chapter5Database management system chapter5
Database management system chapter5
Pranab Dasgupta
 
Java9 and the impact on Maven Projects (JFall 2016)
Java9 and the impact on Maven Projects (JFall 2016)Java9 and the impact on Maven Projects (JFall 2016)
Java9 and the impact on Maven Projects (JFall 2016)
Robert Scholte
 
Oracle Architecture
Oracle ArchitectureOracle Architecture
Oracle Architecture
Neeraj Singh
 
Maven university-course
Maven university-courseMaven university-course
Maven university-course
Olivier Lamy
 
DBMS lab manual
DBMS lab manualDBMS lab manual
DBMS lab manual
maha tce
 
Oracle Basics and Architecture
Oracle Basics and ArchitectureOracle Basics and Architecture
Oracle Basics and Architecture
Sidney Chen
 
DBMS Practical File
DBMS Practical FileDBMS Practical File
DBMS Practical File
Dushmanta Nath
 
Best sql plsql material
Best sql plsql materialBest sql plsql material
Best sql plsql material
pitchaiah yechuri
 
SQL : introduction
SQL : introductionSQL : introduction
SQL : introduction
Shakila Mahjabin
 
SQL Basics
SQL BasicsSQL Basics
SQL Basics
Hammad Rasheed
 
A must Sql notes for beginners
A must Sql notes for beginnersA must Sql notes for beginners
A must Sql notes for beginners
Ram Sagar Mourya
 
Structured Query Language (SQL) - Lecture 5 - Introduction to Databases (1007...
Structured Query Language (SQL) - Lecture 5 - Introduction to Databases (1007...Structured Query Language (SQL) - Lecture 5 - Introduction to Databases (1007...
Structured Query Language (SQL) - Lecture 5 - Introduction to Databases (1007...
Beat Signer
 
DML, DDL, DCL ,DRL/DQL and TCL Statements in SQL with Examples
DML, DDL, DCL ,DRL/DQL and TCL Statements in SQL with ExamplesDML, DDL, DCL ,DRL/DQL and TCL Statements in SQL with Examples
DML, DDL, DCL ,DRL/DQL and TCL Statements in SQL with Examples
LGS, GBHS&IC, University Of South-Asia, TARA-Technologies
 
Presenter manual oracle dba (specially for summer interns)
Presenter manual oracle dba (specially for summer interns)Presenter manual oracle dba (specially for summer interns)
Presenter manual oracle dba (specially for summer interns)
XPERT INFOTECH
 
Java, Eclipse, Maven & JSF tutorial
Java, Eclipse, Maven & JSF tutorialJava, Eclipse, Maven & JSF tutorial
Java, Eclipse, Maven & JSF tutorial
Raghavan Mohan
 
Database management system chapter13
Database management system chapter13Database management system chapter13
Database management system chapter13
Pranab Dasgupta
 
KeyLabsTraining - Courses
KeyLabsTraining - CoursesKeyLabsTraining - Courses
KeyLabsTraining - Courses
Chinna Botla
 
Database management system chapter1
Database management system chapter1Database management system chapter1
Database management system chapter1
Pranab Dasgupta
 
Database management system chapter5
Database management system chapter5Database management system chapter5
Database management system chapter5
Pranab Dasgupta
 
Java9 and the impact on Maven Projects (JFall 2016)
Java9 and the impact on Maven Projects (JFall 2016)Java9 and the impact on Maven Projects (JFall 2016)
Java9 and the impact on Maven Projects (JFall 2016)
Robert Scholte
 
Oracle Architecture
Oracle ArchitectureOracle Architecture
Oracle Architecture
Neeraj Singh
 
Maven university-course
Maven university-courseMaven university-course
Maven university-course
Olivier Lamy
 
DBMS lab manual
DBMS lab manualDBMS lab manual
DBMS lab manual
maha tce
 
Oracle Basics and Architecture
Oracle Basics and ArchitectureOracle Basics and Architecture
Oracle Basics and Architecture
Sidney Chen
 
A must Sql notes for beginners
A must Sql notes for beginnersA must Sql notes for beginners
A must Sql notes for beginners
Ram Sagar Mourya
 
Structured Query Language (SQL) - Lecture 5 - Introduction to Databases (1007...
Structured Query Language (SQL) - Lecture 5 - Introduction to Databases (1007...Structured Query Language (SQL) - Lecture 5 - Introduction to Databases (1007...
Structured Query Language (SQL) - Lecture 5 - Introduction to Databases (1007...
Beat Signer
 

Similar to Using Maven to build Java & Android program (20)

InstallationGuide-JavaEclipseAndMaven_v2.pdf
InstallationGuide-JavaEclipseAndMaven_v2.pdfInstallationGuide-JavaEclipseAndMaven_v2.pdf
InstallationGuide-JavaEclipseAndMaven_v2.pdf
priyanshu812596
 
Hands On with Maven
Hands On with MavenHands On with Maven
Hands On with Maven
Sid Anand
 
Deep Dive into the AOSP
Deep Dive into the AOSPDeep Dive into the AOSP
Deep Dive into the AOSP
Dr. Ketan Parmar
 
Gradle,the new build system for android
Gradle,the new build system for androidGradle,the new build system for android
Gradle,the new build system for android
zhang ghui
 
Android gradle-build-system-overview
Android gradle-build-system-overviewAndroid gradle-build-system-overview
Android gradle-build-system-overview
Kevin He
 
Java 9 and the impact on Maven Projects (JavaOne 2016)
Java 9 and the impact on Maven Projects (JavaOne 2016)Java 9 and the impact on Maven Projects (JavaOne 2016)
Java 9 and the impact on Maven Projects (JavaOne 2016)
Robert Scholte
 
Apache maven and its impact on java 9 (Java One 2017)
Apache maven and its impact on java 9 (Java One 2017)Apache maven and its impact on java 9 (Java One 2017)
Apache maven and its impact on java 9 (Java One 2017)
Robert Scholte
 
Java Build Tools
Java Build ToolsJava Build Tools
Java Build Tools
­Avishek A
 
Apache Maven - eXo TN presentation
Apache Maven - eXo TN presentationApache Maven - eXo TN presentation
Apache Maven - eXo TN presentation
Arnaud Héritier
 
An introduction to maven gradle and sbt
An introduction to maven gradle and sbtAn introduction to maven gradle and sbt
An introduction to maven gradle and sbt
Fabio Fumarola
 
A brief guide to android gradle
A brief guide to android gradleA brief guide to android gradle
A brief guide to android gradle
Leonardo YongUk Kim
 
Gradle
GradleGradle
Gradle
Return on Intelligence
 
Continuous Integration with Maven for Android apps
Continuous Integration with Maven for Android appsContinuous Integration with Maven for Android apps
Continuous Integration with Maven for Android apps
Hugo Josefson
 
Build your android app with gradle
Build your android app with gradleBuild your android app with gradle
Build your android app with gradle
Swain Loda
 
Head first android apps dev tools
Head first android apps dev toolsHead first android apps dev tools
Head first android apps dev tools
Shaka Huang
 
Java 9 and the impact on Maven Projects (ApacheCon Europe 2016)
Java 9 and the impact on Maven Projects (ApacheCon Europe 2016)Java 9 and the impact on Maven Projects (ApacheCon Europe 2016)
Java 9 and the impact on Maven Projects (ApacheCon Europe 2016)
Robert Scholte
 
Maven2交流
Maven2交流Maven2交流
Maven2交流
ChangQi Lin
 
Deploying artifacts to archiva
Deploying artifacts to archivaDeploying artifacts to archiva
Deploying artifacts to archiva
allanh0526
 
Faster Java EE Builds with Gradle
Faster Java EE Builds with GradleFaster Java EE Builds with Gradle
Faster Java EE Builds with Gradle
Ryan Cuprak
 
Introduction to apache maven
Introduction to apache mavenIntroduction to apache maven
Introduction to apache maven
Krish
 
InstallationGuide-JavaEclipseAndMaven_v2.pdf
InstallationGuide-JavaEclipseAndMaven_v2.pdfInstallationGuide-JavaEclipseAndMaven_v2.pdf
InstallationGuide-JavaEclipseAndMaven_v2.pdf
priyanshu812596
 
Hands On with Maven
Hands On with MavenHands On with Maven
Hands On with Maven
Sid Anand
 
Gradle,the new build system for android
Gradle,the new build system for androidGradle,the new build system for android
Gradle,the new build system for android
zhang ghui
 
Android gradle-build-system-overview
Android gradle-build-system-overviewAndroid gradle-build-system-overview
Android gradle-build-system-overview
Kevin He
 
Java 9 and the impact on Maven Projects (JavaOne 2016)
Java 9 and the impact on Maven Projects (JavaOne 2016)Java 9 and the impact on Maven Projects (JavaOne 2016)
Java 9 and the impact on Maven Projects (JavaOne 2016)
Robert Scholte
 
Apache maven and its impact on java 9 (Java One 2017)
Apache maven and its impact on java 9 (Java One 2017)Apache maven and its impact on java 9 (Java One 2017)
Apache maven and its impact on java 9 (Java One 2017)
Robert Scholte
 
Java Build Tools
Java Build ToolsJava Build Tools
Java Build Tools
­Avishek A
 
Apache Maven - eXo TN presentation
Apache Maven - eXo TN presentationApache Maven - eXo TN presentation
Apache Maven - eXo TN presentation
Arnaud Héritier
 
An introduction to maven gradle and sbt
An introduction to maven gradle and sbtAn introduction to maven gradle and sbt
An introduction to maven gradle and sbt
Fabio Fumarola
 
Continuous Integration with Maven for Android apps
Continuous Integration with Maven for Android appsContinuous Integration with Maven for Android apps
Continuous Integration with Maven for Android apps
Hugo Josefson
 
Build your android app with gradle
Build your android app with gradleBuild your android app with gradle
Build your android app with gradle
Swain Loda
 
Head first android apps dev tools
Head first android apps dev toolsHead first android apps dev tools
Head first android apps dev tools
Shaka Huang
 
Java 9 and the impact on Maven Projects (ApacheCon Europe 2016)
Java 9 and the impact on Maven Projects (ApacheCon Europe 2016)Java 9 and the impact on Maven Projects (ApacheCon Europe 2016)
Java 9 and the impact on Maven Projects (ApacheCon Europe 2016)
Robert Scholte
 
Deploying artifacts to archiva
Deploying artifacts to archivaDeploying artifacts to archiva
Deploying artifacts to archiva
allanh0526
 
Faster Java EE Builds with Gradle
Faster Java EE Builds with GradleFaster Java EE Builds with Gradle
Faster Java EE Builds with Gradle
Ryan Cuprak
 
Introduction to apache maven
Introduction to apache mavenIntroduction to apache maven
Introduction to apache maven
Krish
 
Ad

More from Mu Chun Wang (20)

如何在有限資源下實現十年的後端服務演進
如何在有限資源下實現十年的後端服務演進如何在有限資源下實現十年的後端服務演進
如何在有限資源下實現十年的後端服務演進
Mu Chun Wang
 
深入淺出 autocomplete
深入淺出 autocomplete深入淺出 autocomplete
深入淺出 autocomplete
Mu Chun Wang
 
你畢業後要任職的軟體業到底都在做些什麼事
你畢業後要任職的軟體業到底都在做些什麼事你畢業後要任職的軟體業到底都在做些什麼事
你畢業後要任職的軟體業到底都在做些什麼事
Mu Chun Wang
 
網路服務就是一連串搜尋的集合體
網路服務就是一連串搜尋的集合體網路服務就是一連串搜尋的集合體
網路服務就是一連串搜尋的集合體
Mu Chun Wang
 
老司機帶你上手 PostgreSQL 關聯式資料庫系統
老司機帶你上手 PostgreSQL 關聯式資料庫系統老司機帶你上手 PostgreSQL 關聯式資料庫系統
老司機帶你上手 PostgreSQL 關聯式資料庫系統
Mu Chun Wang
 
使用 PostgreSQL 及 MongoDB 從零開始建置社群必備的按讚追蹤功能
使用 PostgreSQL 及 MongoDB 從零開始建置社群必備的按讚追蹤功能使用 PostgreSQL 及 MongoDB 從零開始建置社群必備的按讚追蹤功能
使用 PostgreSQL 及 MongoDB 從零開始建置社群必備的按讚追蹤功能
Mu Chun Wang
 
Funliday 新創生活甘苦談
Funliday 新創生活甘苦談Funliday 新創生活甘苦談
Funliday 新創生活甘苦談
Mu Chun Wang
 
大解密!用 PostgreSQL 提升 350 倍的 Funliday 推薦景點計算速度
大解密!用 PostgreSQL 提升 350 倍的 Funliday 推薦景點計算速度大解密!用 PostgreSQL 提升 350 倍的 Funliday 推薦景點計算速度
大解密!用 PostgreSQL 提升 350 倍的 Funliday 推薦景點計算速度
Mu Chun Wang
 
如何使用 iframe 製作一個易於更新及更安全的前端套件
如何使用 iframe 製作一個易於更新及更安全的前端套件如何使用 iframe 製作一個易於更新及更安全的前端套件
如何使用 iframe 製作一個易於更新及更安全的前端套件
Mu Chun Wang
 
pppr - 解決 JavaScript 無法被搜尋引擎正確索引的問題
pppr - 解決 JavaScript 無法被搜尋引擎正確索引的問題pppr - 解決 JavaScript 無法被搜尋引擎正確索引的問題
pppr - 解決 JavaScript 無法被搜尋引擎正確索引的問題
Mu Chun Wang
 
模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構
模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構
模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構
Mu Chun Wang
 
Google Maps 開始收費了該怎麼辦?
Google Maps 開始收費了該怎麼辦?Google Maps 開始收費了該怎麼辦?
Google Maps 開始收費了該怎麼辦?
Mu Chun Wang
 
Git 可以做到的事
Git 可以做到的事Git 可以做到的事
Git 可以做到的事
Mu Chun Wang
 
那些大家常忽略的 Cache-Control
那些大家常忽略的 Cache-Control那些大家常忽略的 Cache-Control
那些大家常忽略的 Cache-Control
Mu Chun Wang
 
如何利用 OpenAPI 及 WebHooks 讓老舊的網路服務也可程式化
如何利用 OpenAPI 及 WebHooks 讓老舊的網路服務也可程式化如何利用 OpenAPI 及 WebHooks 讓老舊的網路服務也可程式化
如何利用 OpenAPI 及 WebHooks 讓老舊的網路服務也可程式化
Mu Chun Wang
 
如何與全世界分享你的 Library
如何與全世界分享你的 Library如何與全世界分享你的 Library
如何與全世界分享你的 Library
Mu Chun Wang
 
如何與 Git 優雅地在樹上唱歌
如何與 Git 優雅地在樹上唱歌如何與 Git 優雅地在樹上唱歌
如何與 Git 優雅地在樹上唱歌
Mu Chun Wang
 
API Blueprint - API 文件規範的三大領頭之一
API Blueprint - API 文件規範的三大領頭之一API Blueprint - API 文件規範的三大領頭之一
API Blueprint - API 文件規範的三大領頭之一
Mu Chun Wang
 
團體共同協作與版本管理 - 01認識共同協作
團體共同協作與版本管理 - 01認識共同協作團體共同協作與版本管理 - 01認識共同協作
團體共同協作與版本管理 - 01認識共同協作
Mu Chun Wang
 
Git 經驗分享
Git 經驗分享Git 經驗分享
Git 經驗分享
Mu Chun Wang
 
如何在有限資源下實現十年的後端服務演進
如何在有限資源下實現十年的後端服務演進如何在有限資源下實現十年的後端服務演進
如何在有限資源下實現十年的後端服務演進
Mu Chun Wang
 
深入淺出 autocomplete
深入淺出 autocomplete深入淺出 autocomplete
深入淺出 autocomplete
Mu Chun Wang
 
你畢業後要任職的軟體業到底都在做些什麼事
你畢業後要任職的軟體業到底都在做些什麼事你畢業後要任職的軟體業到底都在做些什麼事
你畢業後要任職的軟體業到底都在做些什麼事
Mu Chun Wang
 
網路服務就是一連串搜尋的集合體
網路服務就是一連串搜尋的集合體網路服務就是一連串搜尋的集合體
網路服務就是一連串搜尋的集合體
Mu Chun Wang
 
老司機帶你上手 PostgreSQL 關聯式資料庫系統
老司機帶你上手 PostgreSQL 關聯式資料庫系統老司機帶你上手 PostgreSQL 關聯式資料庫系統
老司機帶你上手 PostgreSQL 關聯式資料庫系統
Mu Chun Wang
 
使用 PostgreSQL 及 MongoDB 從零開始建置社群必備的按讚追蹤功能
使用 PostgreSQL 及 MongoDB 從零開始建置社群必備的按讚追蹤功能使用 PostgreSQL 及 MongoDB 從零開始建置社群必備的按讚追蹤功能
使用 PostgreSQL 及 MongoDB 從零開始建置社群必備的按讚追蹤功能
Mu Chun Wang
 
Funliday 新創生活甘苦談
Funliday 新創生活甘苦談Funliday 新創生活甘苦談
Funliday 新創生活甘苦談
Mu Chun Wang
 
大解密!用 PostgreSQL 提升 350 倍的 Funliday 推薦景點計算速度
大解密!用 PostgreSQL 提升 350 倍的 Funliday 推薦景點計算速度大解密!用 PostgreSQL 提升 350 倍的 Funliday 推薦景點計算速度
大解密!用 PostgreSQL 提升 350 倍的 Funliday 推薦景點計算速度
Mu Chun Wang
 
如何使用 iframe 製作一個易於更新及更安全的前端套件
如何使用 iframe 製作一個易於更新及更安全的前端套件如何使用 iframe 製作一個易於更新及更安全的前端套件
如何使用 iframe 製作一個易於更新及更安全的前端套件
Mu Chun Wang
 
pppr - 解決 JavaScript 無法被搜尋引擎正確索引的問題
pppr - 解決 JavaScript 無法被搜尋引擎正確索引的問題pppr - 解決 JavaScript 無法被搜尋引擎正確索引的問題
pppr - 解決 JavaScript 無法被搜尋引擎正確索引的問題
Mu Chun Wang
 
模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構
模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構
模糊也是一種美 - 從 BlurHash 探討前後端上傳圖片架構
Mu Chun Wang
 
Google Maps 開始收費了該怎麼辦?
Google Maps 開始收費了該怎麼辦?Google Maps 開始收費了該怎麼辦?
Google Maps 開始收費了該怎麼辦?
Mu Chun Wang
 
Git 可以做到的事
Git 可以做到的事Git 可以做到的事
Git 可以做到的事
Mu Chun Wang
 
那些大家常忽略的 Cache-Control
那些大家常忽略的 Cache-Control那些大家常忽略的 Cache-Control
那些大家常忽略的 Cache-Control
Mu Chun Wang
 
如何利用 OpenAPI 及 WebHooks 讓老舊的網路服務也可程式化
如何利用 OpenAPI 及 WebHooks 讓老舊的網路服務也可程式化如何利用 OpenAPI 及 WebHooks 讓老舊的網路服務也可程式化
如何利用 OpenAPI 及 WebHooks 讓老舊的網路服務也可程式化
Mu Chun Wang
 
如何與全世界分享你的 Library
如何與全世界分享你的 Library如何與全世界分享你的 Library
如何與全世界分享你的 Library
Mu Chun Wang
 
如何與 Git 優雅地在樹上唱歌
如何與 Git 優雅地在樹上唱歌如何與 Git 優雅地在樹上唱歌
如何與 Git 優雅地在樹上唱歌
Mu Chun Wang
 
API Blueprint - API 文件規範的三大領頭之一
API Blueprint - API 文件規範的三大領頭之一API Blueprint - API 文件規範的三大領頭之一
API Blueprint - API 文件規範的三大領頭之一
Mu Chun Wang
 
團體共同協作與版本管理 - 01認識共同協作
團體共同協作與版本管理 - 01認識共同協作團體共同協作與版本管理 - 01認識共同協作
團體共同協作與版本管理 - 01認識共同協作
Mu Chun Wang
 
Ad

Recently uploaded (20)

Developing Schemas with FME and Excel - Peak of Data & AI 2025
Developing Schemas with FME and Excel - Peak of Data & AI 2025Developing Schemas with FME and Excel - Peak of Data & AI 2025
Developing Schemas with FME and Excel - Peak of Data & AI 2025
Safe Software
 
Artificial Intelligence in the Nonprofit Boardroom.pdf
Artificial Intelligence in the Nonprofit Boardroom.pdfArtificial Intelligence in the Nonprofit Boardroom.pdf
Artificial Intelligence in the Nonprofit Boardroom.pdf
OnBoard
 
Azure vs AWS Which Cloud Platform Is Best for Your Business in 2025
Azure vs AWS  Which Cloud Platform Is Best for Your Business in 2025Azure vs AWS  Which Cloud Platform Is Best for Your Business in 2025
Azure vs AWS Which Cloud Platform Is Best for Your Business in 2025
Infrassist Technologies Pvt. Ltd.
 
Down the Rabbit Hole – Solving 5 Training Roadblocks
Down the Rabbit Hole – Solving 5 Training RoadblocksDown the Rabbit Hole – Solving 5 Training Roadblocks
Down the Rabbit Hole – Solving 5 Training Roadblocks
Rustici Software
 
If You Use Databricks, You Definitely Need FME
If You Use Databricks, You Definitely Need FMEIf You Use Databricks, You Definitely Need FME
If You Use Databricks, You Definitely Need FME
Safe Software
 
Secure Access with Azure Active Directory
Secure Access with Azure Active DirectorySecure Access with Azure Active Directory
Secure Access with Azure Active Directory
VICTOR MAESTRE RAMIREZ
 
Enabling BIM / GIS integrations with Other Systems with FME
Enabling BIM / GIS integrations with Other Systems with FMEEnabling BIM / GIS integrations with Other Systems with FME
Enabling BIM / GIS integrations with Other Systems with FME
Safe Software
 
Oracle Cloud Infrastructure AI Foundations
Oracle Cloud Infrastructure AI FoundationsOracle Cloud Infrastructure AI Foundations
Oracle Cloud Infrastructure AI Foundations
VICTOR MAESTRE RAMIREZ
 
Providing an OGC API Processes REST Interface for FME Flow
Providing an OGC API Processes REST Interface for FME FlowProviding an OGC API Processes REST Interface for FME Flow
Providing an OGC API Processes REST Interface for FME Flow
Safe Software
 
Introduction to Internet of things .ppt.
Introduction to Internet of things .ppt.Introduction to Internet of things .ppt.
Introduction to Internet of things .ppt.
hok12341073
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...
“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...
“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...
Edge AI and Vision Alliance
 
No-Code Workflows for CAD & 3D Data: Scaling AI-Driven Infrastructure
No-Code Workflows for CAD & 3D Data: Scaling AI-Driven InfrastructureNo-Code Workflows for CAD & 3D Data: Scaling AI-Driven Infrastructure
No-Code Workflows for CAD & 3D Data: Scaling AI-Driven Infrastructure
Safe Software
 
Introduction to Typescript - GDG On Campus EUE
Introduction to Typescript - GDG On Campus EUEIntroduction to Typescript - GDG On Campus EUE
Introduction to Typescript - GDG On Campus EUE
Google Developer Group On Campus European Universities in Egypt
 
Agentic AI: Beyond the Buzz- LangGraph Studio V2
Agentic AI: Beyond the Buzz- LangGraph Studio V2Agentic AI: Beyond the Buzz- LangGraph Studio V2
Agentic AI: Beyond the Buzz- LangGraph Studio V2
Shashikant Jagtap
 
Your startup on AWS - How to architect and maintain a Lean and Mean account
Your startup on AWS - How to architect and maintain a Lean and Mean accountYour startup on AWS - How to architect and maintain a Lean and Mean account
Your startup on AWS - How to architect and maintain a Lean and Mean account
angelo60207
 
Viral>Wondershare Filmora 14.5.18.12900 Crack Free Download
Viral>Wondershare Filmora 14.5.18.12900 Crack Free DownloadViral>Wondershare Filmora 14.5.18.12900 Crack Free Download
Viral>Wondershare Filmora 14.5.18.12900 Crack Free Download
Puppy jhon
 
Your startup on AWS - How to architect and maintain a Lean and Mean account J...
Your startup on AWS - How to architect and maintain a Lean and Mean account J...Your startup on AWS - How to architect and maintain a Lean and Mean account J...
Your startup on AWS - How to architect and maintain a Lean and Mean account J...
angelo60207
 
Murdledescargadarkweb.pdfvolumen1 100 elementary
Murdledescargadarkweb.pdfvolumen1 100 elementaryMurdledescargadarkweb.pdfvolumen1 100 elementary
Murdledescargadarkweb.pdfvolumen1 100 elementary
JorgeSemperteguiMont
 
Crypto Super 500 - 14th Report - June2025.pdf
Crypto Super 500 - 14th Report - June2025.pdfCrypto Super 500 - 14th Report - June2025.pdf
Crypto Super 500 - 14th Report - June2025.pdf
Stephen Perrenod
 
Developing Schemas with FME and Excel - Peak of Data & AI 2025
Developing Schemas with FME and Excel - Peak of Data & AI 2025Developing Schemas with FME and Excel - Peak of Data & AI 2025
Developing Schemas with FME and Excel - Peak of Data & AI 2025
Safe Software
 
Artificial Intelligence in the Nonprofit Boardroom.pdf
Artificial Intelligence in the Nonprofit Boardroom.pdfArtificial Intelligence in the Nonprofit Boardroom.pdf
Artificial Intelligence in the Nonprofit Boardroom.pdf
OnBoard
 
Azure vs AWS Which Cloud Platform Is Best for Your Business in 2025
Azure vs AWS  Which Cloud Platform Is Best for Your Business in 2025Azure vs AWS  Which Cloud Platform Is Best for Your Business in 2025
Azure vs AWS Which Cloud Platform Is Best for Your Business in 2025
Infrassist Technologies Pvt. Ltd.
 
Down the Rabbit Hole – Solving 5 Training Roadblocks
Down the Rabbit Hole – Solving 5 Training RoadblocksDown the Rabbit Hole – Solving 5 Training Roadblocks
Down the Rabbit Hole – Solving 5 Training Roadblocks
Rustici Software
 
If You Use Databricks, You Definitely Need FME
If You Use Databricks, You Definitely Need FMEIf You Use Databricks, You Definitely Need FME
If You Use Databricks, You Definitely Need FME
Safe Software
 
Secure Access with Azure Active Directory
Secure Access with Azure Active DirectorySecure Access with Azure Active Directory
Secure Access with Azure Active Directory
VICTOR MAESTRE RAMIREZ
 
Enabling BIM / GIS integrations with Other Systems with FME
Enabling BIM / GIS integrations with Other Systems with FMEEnabling BIM / GIS integrations with Other Systems with FME
Enabling BIM / GIS integrations with Other Systems with FME
Safe Software
 
Oracle Cloud Infrastructure AI Foundations
Oracle Cloud Infrastructure AI FoundationsOracle Cloud Infrastructure AI Foundations
Oracle Cloud Infrastructure AI Foundations
VICTOR MAESTRE RAMIREZ
 
Providing an OGC API Processes REST Interface for FME Flow
Providing an OGC API Processes REST Interface for FME FlowProviding an OGC API Processes REST Interface for FME Flow
Providing an OGC API Processes REST Interface for FME Flow
Safe Software
 
Introduction to Internet of things .ppt.
Introduction to Internet of things .ppt.Introduction to Internet of things .ppt.
Introduction to Internet of things .ppt.
hok12341073
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...
“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...
“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...
Edge AI and Vision Alliance
 
No-Code Workflows for CAD & 3D Data: Scaling AI-Driven Infrastructure
No-Code Workflows for CAD & 3D Data: Scaling AI-Driven InfrastructureNo-Code Workflows for CAD & 3D Data: Scaling AI-Driven Infrastructure
No-Code Workflows for CAD & 3D Data: Scaling AI-Driven Infrastructure
Safe Software
 
Agentic AI: Beyond the Buzz- LangGraph Studio V2
Agentic AI: Beyond the Buzz- LangGraph Studio V2Agentic AI: Beyond the Buzz- LangGraph Studio V2
Agentic AI: Beyond the Buzz- LangGraph Studio V2
Shashikant Jagtap
 
Your startup on AWS - How to architect and maintain a Lean and Mean account
Your startup on AWS - How to architect and maintain a Lean and Mean accountYour startup on AWS - How to architect and maintain a Lean and Mean account
Your startup on AWS - How to architect and maintain a Lean and Mean account
angelo60207
 
Viral>Wondershare Filmora 14.5.18.12900 Crack Free Download
Viral>Wondershare Filmora 14.5.18.12900 Crack Free DownloadViral>Wondershare Filmora 14.5.18.12900 Crack Free Download
Viral>Wondershare Filmora 14.5.18.12900 Crack Free Download
Puppy jhon
 
Your startup on AWS - How to architect and maintain a Lean and Mean account J...
Your startup on AWS - How to architect and maintain a Lean and Mean account J...Your startup on AWS - How to architect and maintain a Lean and Mean account J...
Your startup on AWS - How to architect and maintain a Lean and Mean account J...
angelo60207
 
Murdledescargadarkweb.pdfvolumen1 100 elementary
Murdledescargadarkweb.pdfvolumen1 100 elementaryMurdledescargadarkweb.pdfvolumen1 100 elementary
Murdledescargadarkweb.pdfvolumen1 100 elementary
JorgeSemperteguiMont
 
Crypto Super 500 - 14th Report - June2025.pdf
Crypto Super 500 - 14th Report - June2025.pdfCrypto Super 500 - 14th Report - June2025.pdf
Crypto Super 500 - 14th Report - June2025.pdf
Stephen Perrenod
 

Using Maven to build Java & Android program