Adding a project

How can I add my maven 1 project which uses extends?

If you want to add a project that extends an other, you must add the parent project. When you add a project with sub-projects, Continuum will add all sub-projects, so you need to provide a URL instead of uploading a POM so that Continuum can find all sub-projects.

[top]


How can I add my maven 2 project with modules?

If your project has modules, you need to provide a URL instead of uploading a POM. When you add a project with modules, Continuum will add all sub-projects, and this only works by submitting a URL.

[top]


Can I use file protocol in Add Project view?

File protocol is disabled by default for security reasons. In Continuum 1.1, you can allow it in $CONTINUUM_HOME/apps/continuum/webapp/WEB-INF/classes/META-INF/plexus/application.xml

File protocol is disabled by default for security reasons. In Continuum 1.2, you can allow it in $CONTINUUM_HOME/apps/continuum/WEB-INF/classes/META-INF/plexus/application.xml

Uncomment the following line :

file
       

[top]

Notification

How to configure jabber notifier for google talk?

Jabber Host : talk.google.com

Jabber Port : 5222

Jabber Login : your google talk login without '@gmail.com'

Jabber Domain Name : gmail.com

Is it a SSL Connection? false

[top]


How do I configure Continuum to use GMail as the SMTP server?

In the JNDI configuration, defined in your container for Continuum webapp and in $CONTINUUM_HOME/conf/jetty.xml for standalone version, you can use this parameters:

        
  <New id="validation_mail" class="org.mortbay.jetty.plus.naming.Resource">
    <Arg>mail/Session</Arg>
    <Arg>
      <New class="org.mortbay.naming.factories.MailSessionReference">
        <Set name="user">username@gmail.com</Set>
        <Set name="password">password</Set>
        <Set name="properties">
          <New class="java.util.Properties">
            <Put name="mail.smtp.host">smtp.gmail.com</Put>
            <Put name="mail.smtp.port">587</Put>
            <Put name="mail.smtp.auth">true</Put>
            <Put name="mail.smtp.starttls.enable">true</Put>
          </New>
        </Set>
      </New>
    </Arg>
  </New>
        
       

[top]

General

Why does Continuum build my project group in a different order than the Maven 2 command line?
Continuum uses alphabetical order and then considers dependencies, while Maven starts with the order of the modules in the pom before considering dependencies.

[top]


Why Maven doesn't detect my failed builds?

mvn.bat distributed with Maven 2.0.7 doesn't set correctly the exit code. You can use Maven 2.0.8 to fix it or directly a fixed mvn.bat file. The fixed version is available here.

[top]


How does Continuum detect a successful build with ANT?

Continuum uses the command line return code for detecting a successful or failed execution.

If you use ant, you need to add the following lines at the end of ant.bat :

if "%MAVEN_TERMINATE_CMD%" == "on" exit %ANT_ERROR%

exit /B %ANT_ERROR%
       

If your bat file contains an exit /B at the end, this line must be inserted before it.

The code above is for ANT 1.7, you can download fixed scripts for older ANT here.

[top]


How does Continuum detect a successful build with a SHELL script?

Continuum uses the command line return code for detecting a successful or failed execution.

You need to add the following lines at the end of script :

if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
       

If your bat file contains an exit /B at the end, this line must be inserted before it.

[top]


How can I run Continuum on a different port? I already have application X running on port 8000/8080.

Port 8080 is used by the instance of Jetty that supplies the web interface for Continuum.

If you have another application already running on port 8080, you will get an exception when you start Continuum. If you want to change the port that Continuum uses you should edit the file conf/jetty.xml. Find the following section in that file:


  ...
  <Set name="port"><SystemProperty name="jetty.port" default="8080"/></Set>
  ...

       

Change the appropriate <jetty.port> element to the port number you want for jetty. You need to restart Continuum for the changes to take effect.

[top]


Can I run multiple Continuum instances on one server?

Yes, just change the port as described in the above question.

IIRC, Continuum won't respect a change to the working directory for existing projects, it will still check them out in the old location. Until/unless this is fixed, be sure to make configuration changes before adding any projects, or delete them and re-add.

[top]


What are some alternatives to Continuum?

[top]

Misc

The embedded java CVS client doesn't work for me, what is the workaround?

If you have a native CVS client installed, you can use it instead of the embedded java CVS client. You should add the following property in your startup script:

-Dmaven.scm.provider.cvs.implementation=cvs_native
       

[top]


I'm running on Windows, and Continuum can't log in to my CVS repository! What's going on?

You're probably running the CVSNT client, or another application based on it, like TortoiseCVS. CVSNT stores passwords in the registry, rather than the ~/.cvspass file. You'll need to issue the following command manually (but only once), with the appropriate information filled in:

cvs -d :pserver:account@cvsserver:2401:/rootfolder login
       

Also, note that the login will only be saved for the particular user who typed it. If you're running Continuum as a service, double-check the user it is running as, and make sure that you run cvs login as that user.

[top]


Why does Continuum builds keep failing with password is required even if I'm using anonymous or no password in CVS?

If you keep getting this build error on your projects:

Exception:
Cannot checkout sources.
Exception while executing SCM command.
password is required
       

Modify the SCM URL of your Continuum Project from something like this:

scm:cvs:pserver:username@servername:path_to_repository:module_name
       

to something like this:

scm:cvs:pserver:username:@servername:path_to_repository:module_name
       

Please note the : before @servername. Save changes and try to build again, this time checkout should succeed.

You can learn more about SCM URLs here.

[top]


How can I build the entire project recursively from the parent?

If you want to build recursively from the parent, you have to remove the --non-recursive or -N argument under the "Build Definitions" section of your parent project. Or use the checkbox "For multi modules project, load only root as recursive build" when adding a m2 project.

Ensure that your entire project can be checked out using the SCM URL in your parent project.

For CVS users who have each child project in a separate module, you have several options:

  • Refactor the CVS directory structure to a more standard one (i.e. a module with the parent POM at the base and child projects as subdirectories)
  • Keep the structure and create a new module that contains a parent POM and a list of symbolic links to your actual CVS modules
  • These options ensure that your child projects will not be checked out into separate numbered working directories. Instead, they will be checked out correctly under a single working directory.

    [top]


    How can I build projects with a scm post-commit hook?

    If your SCM support hook scripts, you'll need to write an xml-rpc client for Continuum and call it in your post-commit script.

    [top]