SlideShare a Scribd company logo
1 of 87
Download to read offline
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

What's hot

Java Presentation
Java PresentationJava Presentation
Java Presentation
aitrichtech
 
Tejaswi Desai Resume ASP Dot Net WPF WCF MVC LINQ Agile
Tejaswi Desai Resume ASP Dot Net WPF WCF MVC LINQ AgileTejaswi Desai Resume ASP Dot Net WPF WCF MVC LINQ Agile
Tejaswi Desai Resume ASP Dot Net WPF WCF MVC LINQ Agile
Tejaswi Desai
 

What's hot (20)

JAVA PPT Part-1 BY ADI.pdf
JAVA PPT Part-1 BY ADI.pdfJAVA PPT Part-1 BY ADI.pdf
JAVA PPT Part-1 BY ADI.pdf
 
Java Programming for Designers
Java Programming for DesignersJava Programming for Designers
Java Programming for Designers
 
Hydra
HydraHydra
Hydra
 
Java Presentation
Java PresentationJava Presentation
Java Presentation
 
Vue.js Getting Started
Vue.js Getting StartedVue.js Getting Started
Vue.js Getting Started
 
Building a REST Service in minutes with Spring Boot
Building a REST Service in minutes with Spring BootBuilding a REST Service in minutes with Spring Boot
Building a REST Service in minutes with Spring Boot
 
Tejaswi Desai Resume ASP Dot Net WPF WCF MVC LINQ Agile
Tejaswi Desai Resume ASP Dot Net WPF WCF MVC LINQ AgileTejaswi Desai Resume ASP Dot Net WPF WCF MVC LINQ Agile
Tejaswi Desai Resume ASP Dot Net WPF WCF MVC LINQ Agile
 
IaC.pptx
IaC.pptxIaC.pptx
IaC.pptx
 
React js
React jsReact js
React js
 
Spring boot jpa
Spring boot jpaSpring boot jpa
Spring boot jpa
 
Java Tutorial | Java Programming Tutorial | Java Basics | Java Training | Edu...
Java Tutorial | Java Programming Tutorial | Java Basics | Java Training | Edu...Java Tutorial | Java Programming Tutorial | Java Basics | Java Training | Edu...
Java Tutorial | Java Programming Tutorial | Java Basics | Java Training | Edu...
 
Introduction to java (revised)
Introduction to java (revised)Introduction to java (revised)
Introduction to java (revised)
 
Why Vue.js?
Why Vue.js?Why Vue.js?
Why Vue.js?
 
Core java
Core java Core java
Core java
 
WebSphere application server 8.5.5 - quick overview
WebSphere application server 8.5.5 - quick overviewWebSphere application server 8.5.5 - quick overview
WebSphere application server 8.5.5 - quick overview
 
Spring Boot Tutorial
Spring Boot TutorialSpring Boot Tutorial
Spring Boot Tutorial
 
Basics of VueJS
Basics of VueJSBasics of VueJS
Basics of VueJS
 
android studio
 android studio android studio
android studio
 
Express js
Express jsExpress js
Express js
 
AWS January 2016 Webinar Series - Introduction to Docker on AWS
AWS January 2016 Webinar Series - Introduction to Docker on AWSAWS January 2016 Webinar Series - Introduction to Docker on AWS
AWS January 2016 Webinar Series - Introduction to Docker on AWS
 

Viewers also liked

KeyLabsTraining - Courses
KeyLabsTraining - CoursesKeyLabsTraining - Courses
KeyLabsTraining - Courses
Chinna Botla
 
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
 

Viewers also liked (20)

Installing java, eclipse and maven
Installing java, eclipse and mavenInstalling java, eclipse and maven
Installing java, eclipse and maven
 
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)
 
Java, Eclipse, Maven & JSF tutorial
Java, Eclipse, Maven & JSF tutorialJava, Eclipse, Maven & JSF tutorial
Java, Eclipse, Maven & JSF tutorial
 
Database management system chapter13
Database management system chapter13Database management system chapter13
Database management system chapter13
 
Oracle - Introduction
Oracle - IntroductionOracle - Introduction
Oracle - Introduction
 
KeyLabsTraining - Courses
KeyLabsTraining - CoursesKeyLabsTraining - Courses
KeyLabsTraining - Courses
 
Database management system chapter1
Database management system chapter1Database management system chapter1
Database management system chapter1
 
Database management system chapter5
Database management system chapter5Database management system chapter5
Database management system chapter5
 
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)
 
Oracle Architecture
Oracle ArchitectureOracle Architecture
Oracle Architecture
 
Maven university-course
Maven university-courseMaven university-course
Maven university-course
 
DBMS lab manual
DBMS lab manualDBMS lab manual
DBMS lab manual
 
Oracle Basics and Architecture
Oracle Basics and ArchitectureOracle Basics and Architecture
Oracle Basics and Architecture
 
DBMS Practical File
DBMS Practical FileDBMS Practical File
DBMS Practical File
 
Best sql plsql material
Best sql plsql materialBest sql plsql material
Best sql plsql material
 
SQL : introduction
SQL : introductionSQL : introduction
SQL : introduction
 
SQL Basics
SQL BasicsSQL Basics
SQL Basics
 
A must Sql notes for beginners
A must Sql notes for beginnersA must Sql notes for beginners
A must Sql notes for beginners
 
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...
 
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
 

Similar to Using Maven to build Java & Android program

Gradle - time for a new build
Gradle - time for a new buildGradle - time for a new build
Gradle - time for a new build
Igor Khotin
 
Continuos integration for iOS projects
Continuos integration for iOS projectsContinuos integration for iOS projects
Continuos integration for iOS projects
Aleksandra Gavrilovska
 
UGent Django Infrastructure
UGent Django InfrastructureUGent Django Infrastructure
UGent Django Infrastructure
kevinvw
 
How to create a skeleton of a Java console application
How to create a skeleton of a Java console applicationHow to create a skeleton of a Java console application
How to create a skeleton of a Java console application
Dmitri Pisarenko
 
Jazoon12 355 aleksandra_gavrilovska-1
Jazoon12 355 aleksandra_gavrilovska-1Jazoon12 355 aleksandra_gavrilovska-1
Jazoon12 355 aleksandra_gavrilovska-1
Netcetera
 

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

tools cli java
tools cli javatools cli java
tools cli java
 
Maven
MavenMaven
Maven
 
Gradle - time for a new build
Gradle - time for a new buildGradle - time for a new build
Gradle - time for a new build
 
Lightweight Developer Provisioning with Gradle
Lightweight Developer Provisioning with GradleLightweight Developer Provisioning with Gradle
Lightweight Developer Provisioning with Gradle
 
Lightweight developer provisioning with gradle and seu as-code
Lightweight developer provisioning with gradle and seu as-codeLightweight developer provisioning with gradle and seu as-code
Lightweight developer provisioning with gradle and seu as-code
 
Maven
MavenMaven
Maven
 
Maven
MavenMaven
Maven
 
Continuos integration for iOS projects
Continuos integration for iOS projectsContinuos integration for iOS projects
Continuos integration for iOS projects
 
UGent Django Infrastructure
UGent Django InfrastructureUGent Django Infrastructure
UGent Django Infrastructure
 
Intelligent Projects with Maven - DevFest Istanbul
Intelligent Projects with Maven - DevFest IstanbulIntelligent Projects with Maven - DevFest Istanbul
Intelligent Projects with Maven - DevFest Istanbul
 
Groovy Maven Builds
Groovy Maven BuildsGroovy Maven Builds
Groovy Maven Builds
 
Slim3 quick start
Slim3 quick startSlim3 quick start
Slim3 quick start
 
How to create a skeleton of a Java console application
How to create a skeleton of a Java console applicationHow to create a skeleton of a Java console application
How to create a skeleton of a Java console application
 
Lightweight Developer Provisioning with Gradle
Lightweight Developer Provisioning with GradleLightweight Developer Provisioning with Gradle
Lightweight Developer Provisioning with Gradle
 
Lightweight Developer Provisioning with Gradle and SEU-as-code
Lightweight Developer Provisioning with Gradle and SEU-as-codeLightweight Developer Provisioning with Gradle and SEU-as-code
Lightweight Developer Provisioning with Gradle and SEU-as-code
 
Jazoon12 355 aleksandra_gavrilovska-1
Jazoon12 355 aleksandra_gavrilovska-1Jazoon12 355 aleksandra_gavrilovska-1
Jazoon12 355 aleksandra_gavrilovska-1
 
Using Maven2
Using Maven2Using Maven2
Using Maven2
 
Spring Lab
Spring LabSpring Lab
Spring Lab
 
How to Webpack your Django!
How to Webpack your Django!How to Webpack your Django!
How to Webpack your Django!
 
CQ Maven Methods
CQ Maven MethodsCQ Maven Methods
CQ Maven Methods
 

More from Mu Chun Wang

More from Mu Chun Wang (20)

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

Recently uploaded

Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
FIDO Alliance
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
panagenda
 

Recently uploaded (20)

The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch Tuesday
 
Your enemies use GenAI too - staying ahead of fraud with Neo4j
Your enemies use GenAI too - staying ahead of fraud with Neo4jYour enemies use GenAI too - staying ahead of fraud with Neo4j
Your enemies use GenAI too - staying ahead of fraud with Neo4j
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdf
 
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentation
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 
Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptx
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
 
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
 

Using Maven to build Java & Android program