2. Table of contents
I Overview
II Maven
III CI (Continuous Integration) Server
Page l 2
3. Development Environment Overview
Development Environment provides a set of tools on implementation(coding, debugging), test,
deployment and configuration which are needed to develop an application based on the
eGovFrame Runtime Environment
Implementation Editor, Debugger, Templates Testing, Test Reporting and
Test Tools
Tools Development Procedures Coverage Analysis
Configuration Configuration and Distribution Build / Build Automation
Management Tools Change Management Tools (Maven)
Page l 3
4. Development Environment Composition of eGovFrame
4 service groups, 11 services compose the development environment
Support various tools that are required for a programming based on eGovFrame
Development Environment
Implementation Test Tool Deployment Tool Conf. & Change
Tool Mgt. Tool
Code Generation Test Reporting Build Configuration
Management
Code Inspection Unit Test Deployment
Change
Debug Management
Editor
Methodology &
Template
Page l 4
5. Development Environment Composition of eGovFrame
4 service groups, 11 services compose the development environment
Support various tools that are required for a programming based on eGovFrame
Development Environment
Implementation Test Tool Deployment Tool Conf. & Change
Tool Mgt. Tool
Code Generation Test Reporting Build Configuration
Management
Code Inspection Unit Test Deployment
Change
Debug Management
Editor
Methodology &
Template
Page l 5
6. General programming process Composition of eGovFrame
Adopt eclipse IDE*), and provide programming support tools through the entire
programming lifecycle, which is from coding to deployment
Developer PC Development Server
Yes
Coding Build Success? Configuration Build
Commit management Checkout
• Code editing • Compile • Compile
• Testing • Packaging • Packaging
• Debugging No
• Inspection
Operation Server
WAS restart Deploy
IDE*) : Integrated Development Environment
Page l 6
7. Eclipse IDE Overview Composition of eGovFrame
Implementation tools provide characterized perspective, integrated menu, views and editors
in order to present an easy and convenient development environment for developers.
eGovFrame menu Change to eGovFrame perspective
Provide various editors such as DBIO, UML, ERD , etc
Use various views
such as OutlineView,
Provide views such as Package etc
Explorer,
Data Source Explorer, etc
Provide various views such as DBIO Search, Query Result, etc
Page l 7
8. eGovFrame IDE – eGovFrame integrated menu Composition of eGovFrame
Only activate in eGovFrame Perspective
Integrated menu for quick access to eGovFrame related plug-ins
Start
- New Core Project
: create eGovFrame Core Project
- New Web Project
: create eGovFrame Web Project
- New Template Project : create eGovFrame Template Project
Analysis
- New Usecase Diagram : create Usecase Diagram
Design
- New ER Diagram : create ER Diagram
- New Class Diagram : create Class Diagram
Implementation
- Add eGovFrame Common Component : create Common Component
- New SQL Map Config : create SQL Map Config file
- New SQL Map : create SQL Map file
- Show DBIO Search View : display DBIO Search View
Configuration
- Customize Development Tool : optionally install the required functionality
- Server Connection Management ·Show SVN Repositories View : display SVN Repositories View
·Nexus : manage Nexus repository information
Page l 8
9. eGovFrame IDE – eGovFrame Update Composition of eGovFrame
Install or update eGovFrame in development environment
Page l 9
10. Build – Maven : Architecture Distribution Tools
Maven was originally started as an attempt to simplify the build process and provides a
standard way to build projects. It includes a clear definition of what the project consisted
of(POM), dependency management(library control), project life cycle management, etc
Maven Architecture
POM.XML Dependency Repositories
Project Object
Management (local and
Model
Model remote)
Project life cycle and phases
Plugins
Source Packaged
Reporting Resources Compile
files libraries
Page l 10
11. Build – Maven : Directory Structure Distribution Tools
Providing a standard directory structure
Maven Standard Directory Structure
Directory/File Description
The core of a project's configuration in Maven.
It is a single configuration file that contains the
/pom.xml majority of information required to build a
project. (Ex: dependency)
Locate Java Source file. Compiled to
/src/main/java “target/classes” directory
Resources for deploying, namely XML,
/src/main/resources properties, etc. Copied to “target/classes”
Web application related files (/WEB-
/src/main/webapp INF/web.xml, webapp/index.jsp, css, etc)
Test case Java sources. Compiled to
/src/test/java “target/test-classes”
Resources for testing. Copied to “target/test-
/src/test/resources classes”
/target Build outputs are located
Page l 11
12. Build – Maven : pom.xml Distribution Tools
The POM contains all necessary information about a project, as well as configurations of plugins
to be used during the build process. groupId:artifactId:version are all required fields and act much
like an address and timestamp in a repository, acting like a coordinate system for Maven projects
POM.XML <project xmlns=http://maven.apache.org/POM/4.0.0 ....>
<groupId>egovframework.dev.com</groupId>
<artifactId>egovframework-dev-com</artifactId>
Project Information <version>1.0</version> Artifact Info.
Name Description <packaging>war</packaging>
<dependencies>
URL Inception Year <dependency>
<groupId>junit</groupId>
Artifact <artifactId>junit</artifactId> Dependency
<version>4.4</version>
Group Id Artifact Id <scope>test</scope> Management
Version </dependency>
</dependencies>
<plugins>
Dependencies Repositories <plugin>
<groupId>org.apache.maven.plugins</groupId>
Dependencies Repositories
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
Plug-in
Build Settings <source>1.5</source> Setting
</configuration>
Properties Packaging </plugin>
Build Reporting </plugins>
</project>
Page l 12
13. Build – Maven : Build Lifecycle Distribution Tools
Maven 2.0 is based around the central concept of a build lifecycle. What this means is that
the process for building and distributing a particular artifact (project) is clearly defined.
Build Lifecycle Maven2 Build Lifecycle Phase
Phase Description Validate
validate the project is correct and all necessary archetype
Validate information is available
Compile
Compile compile the source code of the project mvn compile
compiler
test the compiled source code using a suitable unit testing Test
Test framework
mvn P
take the compiled code and package it in its distributable
Package format, such as a JAR test Package O surefire
M
run any checks to verify the package is valid and meets
Verify quality criteria Verify
jar
install the package into the local repository, for use as a mvn install
Install dependency in other projects locally Install
copies the final package to the remote repository for
Deploy sharing with other developers and projects install
deploy
Maven command ex) $mvn install Lifecycle Phases Plugins
Page l 13
14. Build – Maven : Plug-in Distribution Tools
“m2eclipse” plug-in to use Maven in egovframework IDE
m2eclipse Maven Build Maven install
Click “Maven install” to initiate build lifecycle phase. It
packages and installs the project into the local
repository
Page l 14
15. Build – Maven : Repository Distribution Tools
Using libraries that declared in the pom.xml of the project as dependency and the libraries come
from the repository. If it exits in local repository, use it, if not, download from the remote
repository to local and use.
Maven Repository Composition Diagram Utilizing Maven Repository Manager
Internet Internet Internet Internet
Computer 1 Computer 1
Computer 2 Computer 2 Public Maven
Maven Repository
Public Maven Repository
(Nexus)
Repository
Computer 3 Computer 3
Page l 15
16. Build – Maven : Nexus Distribution Tools
Nexus manages software artifacts required for development, deployment, and provisioning.
Also it simplifies the maintenance of internal repositories and access to external repositories
Page l 16
17. CI Server - Build Automation Tool Distribution Tools
Hudson as a CI(Continuous Integration) server
Notice
Feedback Mechanism Build Failed
Code Source Code Build
Commit
Watch & Polling Unit Tests
Developer
Code Version Control Server CI Server
Commit (SVN) Deploy Code Inspection
Developer Build Success Test Coverage
Analysis
Development Server
Page l 17
18. CI Server - Hudson Build Distribution Tools
Hudson as an open source CI server provides automatic build with a script and offers a feedback
mechanism about build results to developers
Main Screen : Display a list of projects, build status and build success or failure
Page l 18
19. CI Server - Hudson Dashboard Distribution Tools
Providing a dashboard function to show build, test results, etc
Page l 19