CC's logo



CC's Build System

Introduction
Basic individual project build and deployment
More advanced project build and deployment
Extracting commonality
Repository building
Automatic Repository building
Adding a Project to the Process
CC's specific Maven goals
Auto-versioning deployment system
Automatic deployment interface
Adding unit testing


Other Information

Maven Definitions
Jelly Scripting Hints



Adding A Project To The Process

Once a project has been updated and configured to run a Maven build, there are a number of manual steps required to add a project to the automatic build and deploy process. They are outlined below and refer to some of the information in the Automatic Repository Building page:

  1. The developer should make sure the project can be built with Maven. If not, use another project as a guide and copy the project.xml to your project to be added. It is important that the new project extends the main project.xml file in Projects/Builds or many of the customized goals and properties defined in that directory will not be inherited. Also, if there is any non-CC code, it needs to be evaluated for any licensing issues. If there is java code that already has a license, use the find command on the server to create an .exclude_license at the top of the project tree (in the same directory as the project.xml file), ie: find . -name "*.java" > .exclude_license and check the file into CVS.
  2. Modify the loginfo file from CVSROOT as described in the Automatic Repository Building page.
  3. Modify the build scripts. This is quite involved as it requires changes to two scripts and the creation of a bare-bones project.xml script.
  4. Modify the ViewCVS links on the web server. This can only be done by a privileged user
  5. Modify the softwaredocs. Update the include file, create a folder for the project with the same name as the artfactId with an index file for project. If updating the main index file as well, modify the main template.html file.
  6. If the project has thirdparty software, update the thirdparty documentation for public viewing in softwaredocs and non-public docs in CC's Confluence wiki. Put thirdparty source code in the Projects/thirdparty/source folder and the thirdparty binary in Projects/thirdparty. When the changes are committed, the files will be put on the build server and md5'd. Make sure the thirdparty binary versions are in the form <thirdparty name>-cc-<ccversion>-<thirdparty version>.<extension>. The extension should usually be '.jar', but it doesn't have to be. Source files don't have naming conventions, but most likely will be zips or tarballs.

User Interface

After using this system for awhile, I wanted to automate the addition of a project to the process so it could save me some time and would allow users to add their project without knowing all the steps required. Below is a screenshot of the user interface:

add project interface

The red numbers are not on the actual page, but are added here as markers for the descriptions that follow.

  1. The Repository: entry on the first line is the root of the CVS repository. It is configurable on the server only.
  2. The Repository Module: selection box has a list of all the buildable Maven projects in the CVS repository. Some modules can be excluded from the search if configured on the server.
  3. The User Doc Description: is an area for developers to add a short description about the project. This text will appear between <!-- Start Description --> and <!-- End Description --> tags and will appear on the main index page as a description. If a developer wants to put more information about the project, they need to checkout the 'softwaredocs' module and update the index.html page for the project.
  4. Hide Project: will exclude the project from the main index page. This is useful for testing or for internal projects that are not to be made available to the public. If, at a later time, the project should be made available, the 'include' file in the softwaredocs module can be updated.



All Contents Copyright © 2005, The Concord Consortium.
All Rights Reserved. Privacy Policy

Last modified: Thursday, 07-Jul-2005 12:22:26 EDT