New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Maven, Archiva, Subversion and Team City
1. Brief overview of Maven2, Archiva, Subversion and Team City
• Maven2 – A build tool for enterprise Java projects
• Archiva – A build artifact repository manager for use with build tools such as Maven, Continuum and Ant.
• Subversion – An Open Source Version Control System that’s widely used in the industry today
• Team City – A Distributed Build Management and Continuous Integration Server
2.
3. A build tool for enterprise Java projects
• Simple project setup that follows best practices - get a new project or module started in seconds
• Consistent usage across all projects means no ramp up time for new developers coming onto a project
• Superior dependency management including automatic updating and transitive dependencies
• Coherent site of project information: Using the same metadata as for the build process, Maven generates a web site or PDF and
adds to that standard reports about the state of development of the project
• Release management and distribution publication: Without much additional configuration, Maven will integrate with your
source control system such as SVN and manage the release of a project based on a certain tag. It can also publish this to a
distribution location for use by other projects.
• Large number of plug-ins for development, deployment, release management, etc. Some examples:
• mvn:pmd – to run the PMD code analysis tool on source code and generate a site report with results
• mvn:checkstyle - performs Checkstyle analysis and generates a report on violations
• mvn:scm - access to common scm commands by offering a set of command mappings
• mvn:release - used to release a project with Maven, saving a lot of repetitive, manual work
• mvn:jetty - run a Jetty container for rapid webapp development
• mvn:cargo - start/stop/configure J2EE containers and deploy to them
4.
5. Archiva is a build artifact repository manager for use with build tools such as
Maven, Continuum and Ant
• Proxy and cache: Allows hosting of private repositories
(managed) and proxying of other repositories (remote)
• Search and repository browse: You can search artifacts in
Archiva as well as browse the repository
• Reports: Archiva uses Jasper Reports for reporting. The
reporting is currently limited to a report of defective or
problematic artifacts in the repositories
• User interface: Archiva uses Webwork for the user interface.
The UI is simple and organized very well
• Repository purge: If enabled, Archiva performs automatic
removal or deletion of old snapshots in the repositories during
repository scanning
• Uploading/Deleting artifacts: Archiva has support for manually
uploading and deleting artifacts
6.
7. • Most CVS features: Subversion was originally designed to be a better CVS, so it has most of CVS's features
• Copying, deleting, and renaming are versioned: Copying, deleting and renaming are versioned operations
• Atomic commits: No part of a commit takes effect until the entire commit has succeeded
Third party clients
• Branching and tagging are cheap operations: Branches and tags are both implemented in terms of an
TortoiseSVN (windows)
underlying quot;copyquot; operation
Subclipse (Eclipse)
• Parseable output: All output of the Subversion command-line client is carefully designed to be both human
readable and automatically parseable; scriptability is a high priority Subversive (Eclipse)
SCPlugin (Mac OS X)
• Interactive conflict resolution: The Subversion command-line client (svn) offers various ways to resolve
conflicting changes, include interactive resolution prompting. This mechanism is also made available via RapidSVN (all platform)
APIs, so that other clients (such as graphical clients) can offer interactive conflict resolution appropriate to
their interfaces and more… @ clients
• Natively client/server, layered library design with clean APIs: Subversion is designed to be client/server
from the beginning; thus avoiding some of the maintenance problems which have plagued CVS. The code is
structured as a set of modules with well-defined interfaces, designed to be called by other applications
• Binary files handled efficiently: Subversion is equally efficient on binary as on text files, because it uses a
binary diffing algorithm to transmit and store successive revisions
• and more… @ features
8.
9. What is Continuous Integration ?
(to answer, we need to understand the “Broken Build” problem)
The “Broken Build” Problem The Solution
Integration Builds:
• is a process of clean rebuilding of project code
base to ensure that new changes integrate well
into the existing code base
• provides feedback on quality of new changes so
that timely fixes can be delivered if the changes
don't integrate and break the project code base
• run by a dedicated build management server.
Running Integration Builds continuously is also known as Continuous Integration.
10. A Distributed Build Management and Continuous Integration Server
•Distributed Build Management: Distributed build management helps optimize hardware resources utilization by parallelizing
product builds within the build agents grid. It results in faster builds and better scalability.
11. • Fastest build feedback in the industry: on-the-fly test results reporting, configurable notifications — TeamCity keeps you in the
know with the most recent build updates and intermediate results
12. • Pre-Tested Commit (aka Remote Run): TeamCity builds, checks and runs automated tests on the server even before committing
your changes — keeping your code base clean at all times
13. • Compatibility and extensibility: TeamCity supports Java, .NET and Ruby development. It offers out of the box integration with the
most popular IDEs, build tools, testing frameworks and version control systems