Maven, Archiva, Subversion and Team City


Published on

brief overview of Maven, Archiva, Subversion and Team City

Published in: Technology
1 Comment
  • I know this is 4 years old now so the chances of getting a reply are probably low but were you just using the Maven deploy goal to publish to archiva?
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Maven, Archiva, Subversion and Team City

  1. 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. 2. 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
  3. 3. 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
  4. 4. • 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
  5. 5. 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.
  6. 6. 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.
  7. 7. • 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
  8. 8. • 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
  9. 9. • 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