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

PPSX
FD.io Vector Packet Processing (VPP)
PDF
DPDK IPSec Security Gateway Application
PDF
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No2
PDF
Red Hat OpenStack 17 저자직강+스터디그룹_1주차
KEY
PgTAP Best Practices
PDF
コンテナ時代のOpenStack
PDF
Ethernetの受信処理
ODP
Dovecot Director 概要
FD.io Vector Packet Processing (VPP)
DPDK IPSec Security Gateway Application
OpenStackクラウド基盤構築ハンズオンセミナー 第2日:講義No2
Red Hat OpenStack 17 저자직강+스터디그룹_1주차
PgTAP Best Practices
コンテナ時代のOpenStack
Ethernetの受信処理
Dovecot Director 概要

Viewers also liked (20)

PDF
Installing java, eclipse and maven
PDF
Presenter manual oracle dba (specially for summer interns)
PDF
Java, Eclipse, Maven & JSF tutorial
PDF
Database management system chapter13
PDF
Oracle - Introduction
PDF
KeyLabsTraining - Courses
PDF
Database management system chapter1
PDF
Database management system chapter5
PPSX
Java9 and the impact on Maven Projects (JFall 2016)
PPT
Oracle Architecture
ODP
Maven university-course
DOCX
DBMS lab manual
PPTX
Oracle Basics and Architecture
DOC
DBMS Practical File
DOC
Best sql plsql material
PPT
SQL : introduction
PPTX
SQL Basics
DOC
A must Sql notes for beginners
PDF
Structured Query Language (SQL) - Lecture 5 - Introduction to Databases (1007...
PPTX
DML, DDL, DCL ,DRL/DQL and TCL Statements in SQL with Examples
Installing java, eclipse and maven
Presenter manual oracle dba (specially for summer interns)
Java, Eclipse, Maven & JSF tutorial
Database management system chapter13
Oracle - Introduction
KeyLabsTraining - Courses
Database management system chapter1
Database management system chapter5
Java9 and the impact on Maven Projects (JFall 2016)
Oracle Architecture
Maven university-course
DBMS lab manual
Oracle Basics and Architecture
DBMS Practical File
Best sql plsql material
SQL : introduction
SQL Basics
A must Sql notes for beginners
Structured Query Language (SQL) - Lecture 5 - Introduction to Databases (1007...
DML, DDL, DCL ,DRL/DQL and TCL Statements in SQL with Examples
Ad

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

PDF
tools cli java
PPTX
Maven
PDF
Gradle - time for a new build
PDF
Lightweight developer provisioning with gradle and seu as-code
PDF
Lightweight Developer Provisioning with Gradle
PPTX
Maven
PPT
Continuos integration for iOS projects
PDF
UGent Django Infrastructure
PDF
Intelligent Projects with Maven - DevFest Istanbul
PPT
Groovy Maven Builds
PPT
Slim3 quick start
PDF
How to create a skeleton of a Java console application
PDF
Lightweight Developer Provisioning with Gradle
PDF
Lightweight Developer Provisioning with Gradle and SEU-as-code
PDF
Jazoon12 355 aleksandra_gavrilovska-1
PPT
Using Maven2
PDF
Spring Lab
PDF
How to Webpack your Django!
PDF
CQCON CQ Maven Methods
tools cli java
Maven
Gradle - time for a new build
Lightweight developer provisioning with gradle and seu as-code
Lightweight Developer Provisioning with Gradle
Maven
Continuos integration for iOS projects
UGent Django Infrastructure
Intelligent Projects with Maven - DevFest Istanbul
Groovy Maven Builds
Slim3 quick start
How to create a skeleton of a Java console application
Lightweight Developer Provisioning with Gradle
Lightweight Developer Provisioning with Gradle and SEU-as-code
Jazoon12 355 aleksandra_gavrilovska-1
Using Maven2
Spring Lab
How to Webpack your Django!
CQCON CQ Maven Methods
Ad

More from Mu Chun Wang (20)

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

Recently uploaded (20)

PDF
Enhancing plagiarism detection using data pre-processing and machine learning...
PPTX
2018-HIPAA-Renewal-Training for executives
PDF
A contest of sentiment analysis: k-nearest neighbor versus neural network
PDF
The influence of sentiment analysis in enhancing early warning system model f...
PPTX
The various Industrial Revolutions .pptx
PPT
What is a Computer? Input Devices /output devices
PPT
Module 1.ppt Iot fundamentals and Architecture
PDF
Developing a website for English-speaking practice to English as a foreign la...
PDF
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
DOCX
search engine optimization ppt fir known well about this
PDF
sbt 2.0: go big (Scala Days 2025 edition)
PDF
How IoT Sensor Integration in 2025 is Transforming Industries Worldwide
PPTX
Modernising the Digital Integration Hub
PDF
Comparative analysis of machine learning models for fake news detection in so...
PPTX
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
PDF
Consumable AI The What, Why & How for Small Teams.pdf
PPTX
Microsoft Excel 365/2024 Beginner's training
PDF
Credit Without Borders: AI and Financial Inclusion in Bangladesh
PDF
Improvisation in detection of pomegranate leaf disease using transfer learni...
PDF
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
Enhancing plagiarism detection using data pre-processing and machine learning...
2018-HIPAA-Renewal-Training for executives
A contest of sentiment analysis: k-nearest neighbor versus neural network
The influence of sentiment analysis in enhancing early warning system model f...
The various Industrial Revolutions .pptx
What is a Computer? Input Devices /output devices
Module 1.ppt Iot fundamentals and Architecture
Developing a website for English-speaking practice to English as a foreign la...
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
search engine optimization ppt fir known well about this
sbt 2.0: go big (Scala Days 2025 edition)
How IoT Sensor Integration in 2025 is Transforming Industries Worldwide
Modernising the Digital Integration Hub
Comparative analysis of machine learning models for fake news detection in so...
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
Consumable AI The What, Why & How for Small Teams.pdf
Microsoft Excel 365/2024 Beginner's training
Credit Without Borders: AI and Financial Inclusion in Bangladesh
Improvisation in detection of pomegranate leaf disease using transfer learni...
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf

Using Maven to build Java & Android program