Using Maven to build Java & Android program
-
Upload
mu-chun-wang -
Category
Technology
-
view
930 -
download
0
description
Transcript of Using Maven to build Java & Android program
![Page 1: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/1.jpg)
Using Maven to build Java & Android program
Kewang
![Page 2: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/2.jpg)
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.
![Page 3: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/3.jpg)
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
![Page 4: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/4.jpg)
Maven
![Page 5: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/5.jpg)
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
![Page 6: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/6.jpg)
6
Maven can manage ...
● Builds● Documentation● Reporting● Dependencies● SCMs● Releases● Distribution
![Page 7: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/7.jpg)
7
Maven's concepts
● Project Object Model● Convention over Configuration (CoC)● Dependency management● Plugin-based architecture
![Page 8: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/8.jpg)
8
Project Object Model
![Page 9: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/9.jpg)
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>
![Page 10: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/10.jpg)
10
Convention over Configuration
![Page 11: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/11.jpg)
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
![Page 12: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/12.jpg)
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
![Page 13: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/13.jpg)
13
Dependency management
![Page 14: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/14.jpg)
14
Dependency management
<dependencies> <dependency> <groupId>android</groupId> <artifactId>android</artifactId> <version>2.3.3_r2</version> <scope>provided</scope> </dependency></dependencies>
![Page 15: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/15.jpg)
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>
![Page 16: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/16.jpg)
16
Plugin-based architecture
![Page 17: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/17.jpg)
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>
![Page 18: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/18.jpg)
Maven lifecycle & commands
![Page 19: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/19.jpg)
19
Maven lifecycle
![Page 20: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/20.jpg)
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.
![Page 21: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/21.jpg)
Build a simple Java project
![Page 22: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/22.jpg)
22
Step by step
● Normalize directory structure● Write pom.xml● Run it
![Page 23: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/23.jpg)
23
Normalize directory structure
![Page 24: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/24.jpg)
24
Or maven-archetype-quickstart
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
![Page 25: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/25.jpg)
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>
![Page 26: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/26.jpg)
26
mvn clean compile
![Page 27: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/27.jpg)
27
mvn clean compile
only compiled class
![Page 28: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/28.jpg)
28
mvn clean package
![Page 29: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/29.jpg)
29
mvn clean package
include test file, jar file...
![Page 30: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/30.jpg)
but it can't run ...
![Page 31: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/31.jpg)
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>
![Page 32: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/32.jpg)
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/>
![Page 33: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/33.jpg)
Live DEMO
![Page 34: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/34.jpg)
Apply Maven to Android
![Page 35: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/35.jpg)
35
Project directory structure
![Page 36: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/36.jpg)
36
Step by step
● Install Android SDK● Run Maven Android SDK Deployer● Write pom.xml● Run it
![Page 37: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/37.jpg)
37
Install Android SDK, at least ...
● All versions SDK Platform● All versions Google APIs● All Extra items (including obsoleted)● Glass Development Kit Sneak Peek
![Page 38: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/38.jpg)
38
Run Maven Android SDK Deployer
● Checkout mosabua/maven-android-sdk-deployer● mvn install
![Page 39: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/39.jpg)
39
Run Maven Android SDK Deployer
● Checkout mosabua/maven-android-sdk-deployer● mvn install
copy all jar files to maven repository
![Page 40: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/40.jpg)
40
Use Android libraries like ...
<dependency> <groupId>android</groupId> <artifactId>android</artifactId> <version>4.4_r1</version> <scope>provided</scope></dependency>
![Page 41: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/41.jpg)
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
![Page 42: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/42.jpg)
42
Use Android libraries like ...
<dependency> <groupId>com.google.android.maps</groupId> <artifactId>maps</artifactId> <version>19_r1</version> <scope>provided</scope></dependency>
![Page 43: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/43.jpg)
43
Use Android libraries like ...
<dependency> <groupId>android.support</groupId> <artifactId>compatibility-v13</artifactId> <version>19.0.1</version></dependency>
![Page 44: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/44.jpg)
Write pom.xml
![Page 45: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/45.jpg)
45
<project> tags
<packaging>apk</packaging>
![Page 46: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/46.jpg)
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>
![Page 47: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/47.jpg)
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>
![Page 48: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/48.jpg)
48
mvn clean package
![Page 49: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/49.jpg)
49
mvn clean package
generates R.java
![Page 50: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/50.jpg)
50
mvn android:deploy android:run
● mvn android:deploy– Install app to device
● mvn android:run– Run app at device
![Page 51: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/51.jpg)
Live DEMO
![Page 52: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/52.jpg)
52
android-maven-plugin FAQ
![Page 53: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/53.jpg)
53
android-maven-plugin FAQ
● No Android SDK path could be found.
![Page 54: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/54.jpg)
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
![Page 55: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/55.jpg)
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
![Page 56: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/56.jpg)
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>
![Page 57: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/57.jpg)
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
![Page 58: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/58.jpg)
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>
![Page 59: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/59.jpg)
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
![Page 60: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/60.jpg)
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>
![Page 61: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/61.jpg)
Eclipse tipsIMPORTANT !!!
![Page 62: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/62.jpg)
62
Tips - How to use src folder ?
![Page 63: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/63.jpg)
63
Tips - How to use src folder ?
<build> <sourceDirectory>src</sourceDirectory></build>
![Page 64: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/64.jpg)
64
Tips - How to use libs folder ?
![Page 65: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/65.jpg)
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
![Page 66: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/66.jpg)
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
![Page 67: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/67.jpg)
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
![Page 68: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/68.jpg)
68
Tips - How to use gen folder ?
![Page 69: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/69.jpg)
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>
![Page 70: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/70.jpg)
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>
![Page 71: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/71.jpg)
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
![Page 72: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/72.jpg)
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>
![Page 73: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/73.jpg)
73
Tips - How to use library project ?
![Page 74: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/74.jpg)
74
Tips - How to use library project ?
● Write pom.xml at library project as general Android project
![Page 75: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/75.jpg)
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
![Page 76: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/76.jpg)
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
![Page 77: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/77.jpg)
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>
![Page 78: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/78.jpg)
78
Tips - How to use non-maven library ?
● Compress non-maven library to zip file
![Page 79: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/79.jpg)
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
![Page 80: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/80.jpg)
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>
![Page 82: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/82.jpg)
82
Show Time - google-tts
tts.say(sentence, true, new OnFinishListener() { @Override public void onFinish() { Toast.makeText(this, sentence, Toast.LENGTH_SHORT).show(); }});
![Page 83: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/83.jpg)
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()); }});
![Page 84: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/84.jpg)
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");}
![Page 85: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/85.jpg)
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(); }});
![Page 86: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/86.jpg)
86
References
● Apache Maven Project● Android Application Development with Maven● Android Maven Plugin● Maven Android SDK Deployer
![Page 87: Using Maven to build Java & Android program](https://reader033.fdocuments.in/reader033/viewer/2022061201/547a17975906b50c358b463d/html5/thumbnails/87.jpg)
87