Session 2
-
Upload
gayathiry -
Category
Technology
-
view
76 -
download
2
description
Transcript of Session 2
SESSION 2 : Introduction to Source control/Git hub and
Maven
By : Gayathiry
1. A very brief introduction to source control ◦ What is source control◦ Why we need it◦ How to manage (commands can be used/ things
needs to be considered before commit)
2.◦ “Hello Jaffna” Compile it and run using command line◦ Development tools and build tools◦ Create project structure with specified archtype◦ Simple maven targets◦ Build and run using maven
Road map
3.◦ create account and repository on github◦ Install and setup github◦ fork and clone project◦ pull/push request
4.◦ Fork and clone yshool◦ Pull yschool to local repo◦ Clean and deploy using maven◦ Make some change push it back
Road map ctd…
tracks and provides control over changes to source code
Examples :• Github• SVN(Subversion)• CVS• etc
What is source/revision/version control ?
Why we need it ? track files Periodically commit history will help to collaborate with other
developers merge between other developers compare and revert with previous version of
project/individual files
Getting and Creating Projects Basic Snapshotting Branching and Merging Sharing and Updating Projects Inspection and Comparison
Operations
Make sure that you are working on the latest version of a file.
Check out only what you need. Check in promptly. Write good check-in comments.
Best Practices
public class AppTest{
public static void main(String [] args){System.out.println("Hello Jaffna!");
}}
Compile using command line• Javac AppTest.java• Java AppTest
Sample
Build process is repetitive process where programmer builds the project again and again to test the changes in the project code
Build tools automate the repetitive process and allows the programmer to concentrate on the project development
Building in a single click
What is build process & Why we need build tools ?
Dependency management Versioning Compile Java code, build jars Execute tests and report results, fail build
on failed tests Run quality-check tools (PMD, Findbugs,
Checkstyles) File generation (XmlBeans, Xsl, Velocity,
AspectJ) Property expansion / token substitution
Desired features
software project management and comprehension tool
Based on the concept of a project object model (POM),
Maven can manage a project's build, reporting and documentation from a central piece of information.
What is maven ?
In Maven, an archetype is a template of a project which is combined with some user input to produce a working Maven project
mvn archetype:generate -DarchetypeArtifactId=maven-archetype-webapp -DgroupId=package-name -DartifactId=project-name
Create your first project in maven
Project – Top level modelVersion - what version of the object
model this POM groupId - unique identifier of the organization artifactId - unique base name of the primary
artifact/context packaging - package type version name - display name url - where the project's site can be found description - basic description of your project
POM ctd…
Sample POM
mvn compile mvn test mvn install mvn package mvn clean
http://maven.apache.org/guides/getting-started/index.html#How_do_I_compile_my_application_sources
MVN targets
git is a distributed version control system Is a place where we store our publicly
available source code for client libraries.
Github source control
Getting and Creating Projects• Init• clone
Basic Snapshotting• add• status• diff• commit• reset• rm, mv
Git reference
Branching and Merging• branch• checkout• merge• log• tag
Sharing and Updating Projects• fetch, pull• push• remote
Inspection and Comparison• log• diff
Git reference ctd
Set Up Git Add git plugin• Download :
https://github.com/rishabhsrao/peek-into-github/downloads
• Instruction : http://cloud.github.com/downloads/rishabhsrao/peek-into-github/README.txt
Create A Repository Fork A Repository
DEMO
Created a maven project Setup git Push that to your account Fork and clone and existing project Send fetch & pull requests
Finally…
THANK YOU!