From 5dfc3fdcfb5b58d07b13659803873da49e4d835e Mon Sep 17 00:00:00 2001 From: Ben Alex Date: Wed, 22 Dec 2004 00:16:20 +0000 Subject: [PATCH] Maven workarounds. The definitive guide. :-) --- doc/xdocs/building.html | 126 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 117 insertions(+), 9 deletions(-) diff --git a/doc/xdocs/building.html b/doc/xdocs/building.html index a9588479ab..c177f5d626 100644 --- a/doc/xdocs/building.html +++ b/doc/xdocs/building.html @@ -28,20 +28,128 @@

Building Acegi Security System

-

Building from CVS

-

This project uses Maven as project manager and build tool. You only need to

+

Checking Out from CVS

+

This project uses Maven as project manager + and build tool. We recommend you to install Maven 1.0.2 or greater before trying + the following. Note there are workarounds at the bottom of this page.

+

To checkout Acegi Security from CVS, execute the following command on a + single line:

    -
  1. Install maven (at least 1.0).
  2. -
  3. Run the following instruction on a single line to get latest sources from cvs HEAD
  4. -
    maven scm:checkout-project
    +    
    maven scm:checkout-project
         -Dmaven.scm.method=cvs
         -Dmaven.scm.cvs.module=acegisecurity
         -Dmaven.scm.cvs.root=:pserver:anonymous@cvs.sourceforge.net:/cvsroot/acegisecurity
         -Dmaven.scm.checkout.dir=acegisecurity
    - -
  5. Run maven in any module directory, or maven multiproject:artifact in the root folder if you want to build all modules.
-

Building the site

-

Run maven clean multiproject:clean multiproject:site -Dmaven.test.failure.ignore=true to build a clean copy of the site.

+ +

Quick Build

+

Often people reading this document just want to see if Acegi Security will work + for their projects. They want to deploy a sample application, and that's about it + (after all, all the reference documentation can be read online at + http://acegisecurity.sourceforge.net). + In this case, execute:

+
    +
    cd $ACEGI_SECURITY/core
    +
    maven jar:install
    +
    cd $ACEGI_SECURITY/samples/contacts
    +
    maven war
    +
    copy $ACEGI_SECURITY/samples/contacts/target/acegi-security-sample-contacts-filter.war $YOUR_CONTAINER/webapps
    +
+

Then load up your web container and visit + http://localhost:8080/acegi-security-sample-contacts-filter/ + (or whatever location is appropriate for your web container).

+ +

Building All JARs

+

Sometimes people are already using Acegi Security, and they just want to build the + latest code from CVS. To build all artifacts (JARs) and install them into + your local Maven repository, simple execute:

+
    +
    cd $ACEGI_SECURITY/
    +
    maven multiproject:install
    +
+

You can then check your $HOME/.maven/repository/acegisecurity + directory and it should contain all of the latest Acegi Security JARs.

+ +

Building The Site

+

By "site" we mean the web site you can browse at + http://acegisecurity.sourceforge.net, + which includes the reference documentation and all of the Maven reports. + If you'd like a local copy, simply execute: +

    +
    cd $ACEGI_SECURITY/doc
    +
    maven    multiproject:clean multiproject:site
    +	-Dmaven.jar.override=on 
    +	-Dmaven.jar.clover-ant=1.3.3_01 
    +	-Dmaven.scm.cvs.root=:pserver:anonymous@cvs.sourceforge.net:/cvsroot/acegisecurity
    +
    +
+

If you're an Acegi Security developer, you can omit the + maven.scm.cvs.root property, as your SourceForge login will be used + along with CVS-over-SSH (see workaround discussion below if you have problems).

+ +

Memory and Clover Workarounds

+

If you get an OutOfMemoryError, simply execute the following before + calling Maven:

+
    +
    set MAVEN_OPTS=-Xmx512m
    +
+

If you get an [ERROR] Invalid license: Invalid license file [E1202], + this is because the maven-clover-plugin is using an old version of + clover-ant-xxx.jar. Whilst Acegi Security's project.properties + specifies a newer version, subprojects have an inheritence problem and don't pick + this up (as of the time of writing). To workaround this issue, you need to + specify those override properties on the command line. For example, to execute the + Clover reports for the core subproject, you would do the following:

+
    +
    cd $ACEGI_SECURITY/core
    +
    maven clover:html-report -Dmaven.jar.override=on -Dmaven.jar.clover-ant=1.3.3_01
    +
+ +

CVS-over-SSH Workarounds

+ +

Another possible problem is related to CVS-over-SSH ("ext" in CVSROOT) appearing to freeze. + The following instructions assume you're an Acegi Security developer who has CVS access + to the project, as if you're not then you shouldn't be trying to use CVS-over-SSH + (the instructions above detail how to execute the "site" and "checkout" commands + anonymously via "pserver").

+ +

First check your + $ACEGI_SECURITY/build.properties contains a + maven.username equal to your SourceForge username. If your Maven CVS + commands still don't work, test you have automatic CVS-over-SSH access operational + by executing the following command:

+
    +
    cvs -d :ext:YOUR_SOURCEFORGE_USERNAME@cvs.sourceforge.net:/cvsroot/acegisecurity
    +
+ +

If this CVS command doesn't work (without requiring any interaction such as password + entry), you probably need to review your CVS setup. + This will vary depending on your CVS client.

+ +

One Windows-based command line CVS-over-SSH-with-auto-login combination that + works very well is to install + CVSNT (which has a CVS client console utility) + and + PuTTY (download + putty.zip) together, and use + PuTTY's Pageant to automatically authenticate. A resource that describes in detail + how to configure WinCVS (which internally uses CVSNT's command line client) with PuTTY + (including automatic SSH authentication) is + SourceForge's instructions. + One issue with the SourceForge instructions is they forget to mention how to + tell the CVS command-line client to use plink.exe, which is PuTTY's SSH command-line + version. The solution is to execute + set CVS_RSH=C:\Program Files\putty\plinkk.exe + (or whatever path is appropriate to plink) before running the CVS command line. + In fairness, the SourceForge instructions target the Windows front-end to CVS, whilst + we need the command-line version to work.

+ +

If your CVS is working, try the maven-changelog-plugin on its + own by executing the following command:

+
    +
    cd $ACEGI_SECURITY/
    +
    maven maven-changelog-plugin:report
    +
+