Difference between Maven 1 and Maven 2 | Maven 1 Vs Maven 2

maven-1-and-maven-2-differences

What is Maven 2?
Maven 2.0 is a complete rewrite of the ‘original’ Maven application (‘Maven 1’). As such, it is very different from Maven 1, and not backwards-compatible (eg, it cannot execute Maven 1 plugins). However, Maven 2.0 is the latest stable release of the Maven application, and new users are generally encouraged to use it for all new projects.
If you are familiar with Maven 1, you can find some information about moving to Maven 2 here or on the main Maven site.

Maven 1
To access the repository from your project, add the following line to your project.properties or build.properties.
maven.repo.remote=http://download.java.net/maven/1/,http://www.ibiblio.org/maven/

Maven 2
For Maven2, one needs to add the following into a project’s pom.xml, or into conf/settings.xml // (NOT in mirrors/mirror) where Maven2 is installed:

java.net
http://download.java.net/maven/1
legacy

Maven 2 Lifecycles

Lifecycles are groupings of goals that define a process for building a project. Goals are bound to lifecycles to define a sequence that must be accomplished to produce results. Lifecycles ensure that users building projects with Maven only need to learn a small set of commands. Whereas Maven defines a default set of goals for each typical lifecycle, developers can bind additional goals to lifecycles to transparently add functionality to a build.
Typical lifecycles include:

  • compile—compile the source code
  • test—unit test the compiled source.

Note: Unit tests should not require the classes to be packaged or deployed.

  • package—bundle the compile and tested source code into a distributable package, such as a jar or war.
  • integration-test—employ the package as necessary and run integration tests.
  • install—install the package into the local repository. This allows the package to be utilized as a dependency of other projects.
  • deploy—copies the final package into the remote repositories for sharing and use with other projects.

As you can see, each lifecycle depends upon and builds upon the next. As a result, when a goal is bound to the compile lifecycle, all lifecycles will ensure its execution.
Lifecycles can be executed in conjunction with standalone goals. For instance, commonly the clean:clean goal is executed before the install goal. This is done by invoking:

m2 clean:clean install

Native Multiproject Support

One of the best practices that Maven strongly encourages is the idea that a single project should result in a single artifact, or package, being created. This best practice results in simplified builds and organized project structures. By natively supporting a hierarchical structure of projects, Maven now makes developing enterprise projects which implement this approach easier.
Maven 1 included a plugin for working with related of projects—or multiprojects. Maven 2 takes multiproject builds a step further by including a specialized parent descriptor and native multiproject execution support. As a result, any goals or lifecycles invoked upon a multiproject POM will result in each subproject goal being achieved.

Other Enhancements

Several other changes are included in Maven 2. Maven has been rewritten to be smaller and faster. The architectural changes make embedding Maven into other tools easier and allows for faster command line execution. Maven 2 depends upon fewer dependencies, resulting in a smaller distribution.
The way extensions are made to Maven has been changed in Maven 2. Instead, developers are encouraged to utilize JavaBeans for enhancements. Whereas scripting is allowed (through marmalade support—which includes a jelly facade), it is no longer the tool of choice. All extensions are made through the development of plugins (projects can no longer be customized through scripting in the maven.xml).
The introduction of a settings.xml file replaces the need for properties files. The settings file can be defined at a system, user, or project level. Settings are used to define private configuration information, including usernames and passwords. Project properties (including plugin configuration) are now all defined in the pom.xml.

Understanding Maven 2 Project Types

The first step to creating a maven project is determining which project template, or archetype, your Maven project should be configured as. Archetypes define which type of artifact will be produced by a project. Several archetype templates exist. The standard archetype will produce a standard library jar file. Templates also exist for webapps/wars, Maven plugin projects, documentation Web sites, and more.

Creating Project Descriptors

The archetype:create goal can be utilized to create a basic pom.xml for you project. This basic POM will allow you to execute all of the lifecycles and goals associated with any maven project. The archetype:create goal should be executed as follows:

m2 archetype:create -DgroupdId=com.daviddewolf.maven -DartifactId=example

This simple command creates the basic infrastructure needed for a project. It creates the pom.xml as well as the basic directory structure of for both source and test code. The following structure indicates the directories and files produced by issuing the archetype:goal command as listed above.

+ root
  - pom.xml
  + src
    + main
      + java
        + com
          + daviddewolf
            + maven
              + example
                - App.java
    + test
      + java
        + com
          + daviddewolf
            + maven
              + example
                - TestApp.java

This simple structure that is created is enough to get started with Maven. All of the lifecycles now can be utilized. A simple invocation of the install lifecycle will compile, test, and package the application and then deploy it to the local system repository for use by other projects.
Once created, the POM can be customized to meet the requirements of the specific project. Documentation on the Maven POM can be found on the Maven2 Web site.

Goals You Should Know About

The introduction of lifecycles in Maven 2 has greatly reduced the number of goals that a developer must be aware of. Still, the following goals will undoubtedly be found useful (and can be utilized as soon as the basic descriptor has been generated).

  • clean:clean Clean all artifacts and intermediary files created by Maven
  • idea:idea Generate project files for the IntelliJ IDEA IDE
  • eclipse:eclipse Generate project files for the Eclipse IDE
  • javadoc:javadoc Generate the javadocs for the project
  • antrun:run Run a specified ant target
  • clover:clover Generate a coverage report for the project
  • checkstyle:checkstyle Generate a checkstyle report for the project
  • site:site Generate a documentation Web site for the project. This site will include many information reports concerning the project.

For more information concerning these and other goals, see the Maven2 Web site.
Conclusions
Learning Maven is not difficult; it simply requires a willingness to accept a new philosophy for building applications. Maven utilizes a a centralized project descriptor to intelligently build applications with prebuilt build tools. This differs greatly from ant and other build tools in that project developers are no longer required to write build systems by using a comprehensive set of utilities. This change will save development teams significant time and has started a revolution in build tools.
It is important to remember that Maven2 is still currently only released as Beta Software. Although it is mature enough to utilize in most projects, all of the Maven 1 plugins have not yet been migrated to Maven 2. With time, Maven 2 will become more widely accepted and the number of available plugins will grow beyond what is even available in Maven 1.
Reference:
http://www.developer.com/open/print.php/10930_3552026_2
http://www.sonatype.com/books/maven-book/reference/installation-sect-upgrade-detail.html

Tagged : / / / / / / / / / / / / / / / / /

Bamboo Vs TeamCity Vs CruiseControl – Continuous Integration Expert Review

bamboo-vs-teamcity-vs-crui

Difference between Bamboo Vs TeamCity Vs CruiseControl
TEAMCITY

  • TC pre-tested commit is good.
  • TC integrates to Visual Studio which is our main IDE.
  • JetBrains are more focused on supporting .NET builds than Atlassian is, since JetBrains actually has .NET products so they use it internally.
  • Support for .Net projects, as well as Java, in the same product (nice if you need it).
  • Server-side code coverage analysis (you could get the same results by running EMMA from the Ant build.xml)
  • Server-side static code analysis using IDEA inspections (nice but relies on using IDEA for development – Checkstyle and FindBugs could do something similar from Ant).
  • Pre-tested commits. Sends your changes to the CI server for building before committing to version control. Your changes are only checked-in if the build succeeds and all tests pass.

BAMBOO

  • Bamboo JIRA integration is awesome. I wish TeamCity provides that kind of integration.
  • Bamboo on the other hand looks like a great tool too. It has so many plugins (just like JIRA). It looks nice as well. I can live without VSTD integration, but I really wanted pre-tested commit. Just a note: I did create a feature request ticket to Atlassian telling them about TC’s pre-tested commit feature.

CruiseControl

  • “CruiseControl is a framework for a continuous build process.”
  • “Bamboo is a continuous integration build server that offers heaps of insight on build processes and patterns via solid reporting metrics.”
  • “TeamCity is an innovative, IDE independent, integrated team environment targeted for .NET and Java software developers and their managers.”
  • “AnthillPro3 is a third generation Build Management Server.”

Links and Reference:
http://blog.chris-read.net/2007/02/21/quick-comparison-of-teamcity-12-bamboo-10-and-cruisecontrol-26/
http://blog.uncommons.org/2006/12/08/teamcity/
http://poorinnerlife.blogspot.com/2007/09/bamboo-disappointment.html

Tagged : / / / / / / / / / / / / / / / / / / / / / / / / / / /

File Comparing Tools Review and Feedback

file-comparing-tools-review

File Comparing Tools review
File comparison in computing is the automatic comparing of data between
files on a file system. The result of comparisons are typically
displayed to the user, but can also be used to accomplish tasks in
networks, file systems and revision control.| Comparison of file comparison tools | comparison tools | Good comparison tools | comparison tools review | comparison tools feedback | Free File comparison Tools || Beyond Compare Review | Compare Suite review | Araxis Merge review |ECMerg Review | FileMerge review | WinMerge Review | Diffutils Review|

 

Beyond Compare
Compare Files, Folders

Beyond Compare allows you to quickly and easily compare your files and folders. By using simple, powerful commands you can focus on the differences you’re interested in and ignore those you’re not. You can then merge the changes, synchronize your files, and generate reports for your records.

You can compare entire drives and folders at high speed, checking just sizes and modified times. Or, thoroughly verify every file with byte-by-byte comparisons. FTP sites and zip files are integrated seamlessly, so you can update your website with the touch of a button. Once you’ve found pecific files you’re interested in, Beyond Compare can intelligently pick the best way to compare and display them. Text files can be viewed and edited with syntax highlighting and comparison rules tweaked specifically for documents, source code, and HTML. Data files, executables, binary data, and images all have dedicated viewers as well, so you always have a clear view of the changes.

Specialized Viewers

Beyond Compare includes built-in comparison viewers for a variety of data types. Compare .csv data or HTML tables in a Data Compare session,
or images in a Picture Compare session.

3-way Merge Pro edition only

Introduced in version 3, Beyond Compare’s new merge view allows you to combine changes from two versions of a file into a single output. Its intelligent approach allows you to quickly accept most changes while carefully examining conflicts. Color coding and section highlighting allow you to accept, reject, or combine changes, simply and easily. And, you can change any line in the output with the built-in syntax-highlighting editor. By using Beyond Compare’s powerful file type support and ability to favor changes from one file, you can trivially accept many changes without even seeing them.

You can use Beyond Compare directly from most version control systems, giving you all of the powerful comparing and merging support you need when you need it most. Integrated source control commands are also available, allowing you to check in and check out files without interrupting your work.

Synchronize Folders

Beyond Compare’s intuitive Folder Sync interface lets you reconcile differences in your data automatically. You can efficiently update your laptop, backup your computer, or manage your website, and Beyond Compare will handle all the details. You can copy to and from disks, FTP servers, and zip files, all using the same interface. Anything you don’t want affected can be easily filtered out, and all of the powerful comparison techniques are available, making the backup as fast or robust as you need.

You can automate repetitive tasks using a flexible scripting language, and any script can be called from the command line, allowing you to schedule your syncs for when it’s most convenient.

 

Compare Suite
By keywords comparison allows to match non-related documents with different structure.

Compare two folders feature allows to find and synchronize changes that were made in two folders.

Report can be created once you compared two files or folders. It contains detailed comparison information.

Document audit allows to accept or decline changes that were made in plain text files .

Ignore words. Starting version 5.0 Compare Suite can ignore certain keywords or strings while comparison.

Syntax highlighting. Compare Suite can now highlight syntax for some popular formats, such as .pas, .php, .htm and other.

Multimedia and graphics comparison. Compare Suite can compare information from multimedia and graphic formats.

Command line allows to automate comparison and integrate Compare Suite with other software products, Compare Suite can be a part of quality assurance script set.

Server-side comparison. Provide your employees with ability to compare documents on-line.

 

Araxis Merge
  • File comparison and merging
  • Binary and image file comparison
  • Three-way comparison and automatic merging
  • Integrated folder hierarchy comparison and synchronization
  • Direct access to FTP sites and configuration management systems
  • Report generation
  • Print support, Automation and other advanced features
ECMerge
ECMergePro 2.0 is a powerful comparison and merge software. ECMerge
provides for side-by-side, two- and three-way file revision and folder
synchronization. ECMergePro 2.0 is available in three versions: MS
Windows, Linux and Solaris. In MS Windows, ECMergePro 2.0 can be
integrated in Windows explorer. The software also provides for command
line support.

  • File comparison
  • Folder comparison
  • Image Comparison
  • Reports
  • File conversion: supported
  • Diverse comparison methods
  • Three-way comparison Yes
  • Text navigation
  • Report functionality
  • Merge functionality
  • Integration with version control systems Yes
  • Folder comparison
  • Folder hierarchy synchronization Yes
  • Custom file filters
  • Byte-by-byte comparison
FileMerge
FileMerge is one of the old NeXT Developer applications that survived into the days of Mac OS X, and with good reason: It kicks the pants off anything else when it comes to quickly going through file changes, marking them on the scrollba, allowing you to breeze through them with parallax scrolling, and merging them with a single click:
WinMerge
WinMerge is an Open Source differencing and merging tool for Windows. WinMerge can compare both folders and files, presenting differences in a visual text format that is easy to understand and handle.

WinMerge is highly useful for determining what has changed between project versions, and then merging changes between versions. WinMerge can be used as an external differencing/merging tool or as a standalone application.

Features

In addition, WinMerge has many helpful supporting features that make comparing, synchronising, and merging as easy and useful as possible:

General

  • Supports Microsoft Windows 98/2000/XP/2003/Vista/2008
  • Handles Windows, Unix and Mac text file formats
  • Unicode support
  • Tabbed interface

File Compare

  • Visual differencing and merging of text files
  • Flexible editor with syntax highlighting, line numbers and
  • word-wrap
  • Highlights differences inside lines
  • Difference pane shows current difference in two vertical

Panes

  • Location pane shows map of files compared
  • Moved lines detection

Folder Compare

  • Regular Expression based file filters allow excluding and
  • including items
  • Fast compare using file sizes and dates
  • Compares one folder or includes all subfolders

Version Control

  • Creates patch files
  • Resolve conflict files
  • Rudimentary Visual SourceSafe and Rational ClearCase integration

Other

  • Shell Integration (supports 64-bit Windows versions)
  • Archive file support using 7-Zip
  • Plugin support
  • Localizable interface
  • Online manual and installed HTML Help manual
Diffutils
You can use the diff command to show differences between two files, or each corresponding file in two directories. diff outputs differences between files line by line in any of several formats, selectable by command line options. This set of differences is often called a `diff’ or `patch’. For files that are identical, diff normally produces no output; for binary (non-text) files, diff normally reports only that they are different.

You can use the cmp command to show the offsets and line numbers where two files differ. cmp can also show all the characters that differ between the two files, side by side.

You can use the diff3 command to show differences among three files. When two people have made independent changes to a common original, diff3 can report the differences between the original and the two changed versions, and can produce a merged file that contains both persons’ changes together with warnings about conflicts.

You can use the sdiff command to merge two files interactively.

Tagged : / / / / / / / / / / / / / / / / / / / / / / / / /

What makes P4Win better than P4V? – P4V deficiencies

p4v-deficiencies-compared-to-p4win

P4V deficiencies compared to P4Win

Here’s list of P4V deficiencies & features missing as compared to P4Win…  

1). In P4V you can’t paste paths onto the tree view as way to quickly navigate to items. The nearest equivalent is to paste in to the address bar but that has the annoying side effect of switching between workspace/depot view depending on the format of the address. 

2). P4V has an inferior (broken) ability to copy paths from depot treeview using Crtl+C. P4V copies the string in a totally un-usable format, P4Win copies it ready for use in command line P4 operations etc. 

3). P4V has inferior drag/drop of filenames from treeview. P4Win allows you to drag/drop filenames in local workspace syntax. P4V on the other hand drags/drops in depot syntax – there does not seem to be any way to quickly get filenames in workspace syntax. 

4). P4V can’t integrate a selection of files, it can only integrate single files or entire folders. 

5). P4V doesn’t provide the ability to sort pending changelist by criteria. 

6). P4V doesn’t offer safe automatic merge when integrating a single file. 

7). P4V doesn’t have a default resolve type. 

8). P4V doesn’t allow use of Enter/Ctrl+Enter to select the default action in dialogs (instead you have to use a mouse or press TAB several times). 

9). Many dialogs lack a Cancel button but escape key, in many cases, does the same thing. 

10). P4V suffers from a general lack of keyboard shortcuts (like Ctrl+Shift+M for resolve). 

11). P4V provides no way to “p4 set” defaults and hence interoperates badly with command prompts and scripts. 

13). P4V has lacks command line features of P4Win. 

14). And finally, IMO, P4V is just a more cluttered interface, you spend forever having to resize, switch views and generally fiddle with things. P4Win was fine!But 2008.2 beta release notes that several more dialogs and column-width settings are remembered now 

15). P4V bookmarks no longer cross depots and don’t have keyboard shortcuts. Under P4Win, I constantly switch my current window between depots and file areas using keyboard shortcuts. I have no idea why P4V separates favorites from bookmarks with neither doing the whole job.Favorites is also intent on opening a new app each time rather than just switching which just clutters my desktop. P4V needs the more powerful bookmark function from P4Win. 

16). There is no P4V “resync to same changelist” menu item. I use this frequently when I am testing something and want to wipe out the source and generated binaries and do a quick re-sync. 

17). There is no P4V menu item to update an existing client’s view from another client. We use this all the time with P4Win to update client views from template clients. 

18). P4V does not show the “Explore” and “Command Prompt here” context menus for folders—just for files. I often use this to open a window for the current folder to do something. 

19). Popping up an editor for a file that is not open for edit no longer says read-only with the revision number in the caption bar in P4V. AuthorRobert Pitt & Barry Wilks

Tagged : / / / / / / / / / / / / / / /

Benefits of CVSNT, What are the advantages of CVSNT over CVS ?

advantages-of-cvsnt-over-cvs

Advantages of CVSNT over CVS

Feature CVSNT CVS
Server
Supports authentication via Microsoft Active Directory or SSH (windows only) YES NO
Set enforced protocols allow server to lock out clients connecting over insecure protocols or using insecure/inefficient options. YES NO
Easily remove protocols (without recompile) YES NO
Branch ACLs can be used to restrict access YES NO
LockServer provides file level locking YES NO
More sophisticated / extra triggers available e.g. postcommit. Triggers also available via COM/DLL/.so interfaces YES NO
Supports Unicode files with additional keyword expansion switches YES NO
Efficient storage of binary files using binary deltas YES NO
Extended modules functionality using the modules2 file YES NO
Advanced Reserved Edits and checked commits (supercedes exclusive locking concept) YES NO
Server-side default options (cvsrc) YES NO
CVSROOT/config scripts etc. YES YES
Repository browsing via cvs ls command YES YES
Pluggable server-side diff programs YES NO
Supports Unicode files with additional keyword expansion switches YES NO
Server-side default options (cvsrc) YES NO
UTF-8 (Unicode) Server. YES NO
Multi Lingual filenames suport. YES NO
Rendevous Support YES NO
Binary availability for Windows, Mac OS X, Linux, Solaris, HPUX YES YES
Client support for IBM iSeries (AS/400) OS/400 YES NO
Windows Server
Supports encrypted authentication via SSL (all platforms) YES NO
Configurable with Windows Control Panel YES NO
Compatible with NTFS ACL’s for using permissions based on Windows username or group. YES NO
Triggers also available via COM and DLL interfaces YES NO
Cshdump handler YES NO
Native file access YES NO
Native MSI Installer YES NO
Client
Smart Merge using MergePoint YES NO
Supports Unicode files with additional keyword expansion switches YES NO
“Import-and-go” by optionally turning freshly imported trees into a new sandbox automatically. No more need to purge and do a fresh checkout first YES NO
Version OSX resource fork extensions keyword expansion switches YES NO

Source: Related Website & http://www.cvsnt.org

Tagged : / / / / / / / / / / / / / /

Major differences between CVS and CVSNT | CVS Vs CVSNT

cvs-vs-cvsnt

Major differences between CVS and CVSNT | CVS Vs CVSNT

CVSNT was started as a variation (or branch) of CVS in 1999 because patches contributed to CVS were not considered to be suitable for that project by those responsible for making such decisions at that time.
CVSNT has continued to add features to the original CVS that support modern version control and configuration management best practice as well as maintain feature parity with CVS.
Today CVSNT is the most widely deployed version of CVS and is distributed with TortoiseCVS and WinCVS.

Similarities between CVS and CVSNT

  • From a SCM perpective, they share similarity in purpose, Commands including syntax and functionality
  • Both are freeware
  • Both can be accessed through clients.
  • Both are supported with Unix-like, Windows, Mac OS X

Difference between CVS and CVSNT

  • An alternative to CVS with advance features and support
  • CVS is being maintained but new features are not being added henceforth CVSNT is being maintained and new features are under development.
  • CVS is having only merge function instead of CVSNT is having merge and locking system as well.
  • CVS is having limited features than CVSNT
Tagged : / / / / / / / / / / / / / /