Run this build script
[mchyzer@i2mibuild ~]$ 2.3.0 GROUPER_2_3_0 noRelease

Example PSP build from build server


Replace X Y Z's with the build number

make sure java is jdk7 and M2 env vars are set correctly, and make sure you use maven 3.3.3 (or perhaps later?).

[mchyzer@i2mibuild mchyzer]$ cd /home/mchyzer/tmp
[mchyzer@i2mibuild tmp]$ mkdir mchyzer_build
[mchyzer@i2mibuild tmp]$ export MAVEN_OPTS=-Xmx1024m
[mchyzer@i2mibuild mchyzer_build]$ cd mchyzer_build/
[mchyzer@i2mibuild mchyzer_build]$ wget
[mchyzer@i2mibuild mchyzer_build]$ mv 2.3.0
[mchyzer@i2mibuild mchyzer_build]$ unzip 
[mchyzer@i2mibuild mchyzer_build]$ wget
[mchyzer@i2mibuild mchyzer_build]$ mv GROUPER_2_3_0
[mchyzer@i2mibuild mchyzer_build]$ unzip 
[mchyzer@i2mibuild mchyzer_build]$ rm *.zip
[mchyzer@i2mibuild mchyzer_build]$ mkdir ldappcng
[mchyzer@i2mibuild mchyzer_build]$ mv grouper-GROUPER_2_3_0/grouper-misc/grouper-shib/ ldappcng/
[mchyzer@i2mibuild mchyzer_build]$ cd grouper-psp-2.3.0
[mchyzer@i2mibuild grouper-psp-2.2.2-rc1]$ mv ../grouper-GROUPER_2_3_0/grouper .
[mchyzer@i2mibuild grouper-psp-2.2.2-rc1]$ mv ../grouper-GROUPER_2_3_0/grouper-parent/ .
[mchyzer@i2mibuild grouper-psp-2.2.2-rc1]$ mv ../grouper-GROUPER_2_3_0/grouper-misc/ .
[mchyzer@i2mibuild grouper-psp-2.2.2-rc1]$ mv ../grouper-GROUPER_2_3_0/subject/ .
[mchyzer@i2mibuild grouper-psp-2.2.2-rc1]$ cp grouper/.classpath.mvn grouper/.classpath
[mchyzer@i2mibuild grouper-psp-2.2.2-rc1]$ cp grouper-misc/grouperClient/.classpath.mvn grouper-misc/grouperClient/.classpath
[mchyzer@i2mibuild grouper-psp-2.2.2-rc1]$ cd grouper 
[mchyzer@i2mibuild grouper]$ ant clean
Note: if there are errors about missing jars and maven, download them manually and make the parent dirs and copy the jars
[mchyzer@i2mibuild grouper]$ ant
[mchyzer@i2mibuild grouper]$ cd ../grouper-parent
[mchyzer@i2mibuild grouper-parent]$ /home/mchyzer/software/apache-maven-3.3.3/bin/mvn -Dmaven.wagon.provider.http=httpclient clean deploy -DskipTests -Prelease
[mchyzer@i2mibuild grouper-parent]$ cd ../psp_build/psp-parent/
[mchyzer@i2mibuild psp-parent]$ /home/mchyzer/software/apache-maven-3.3.3/bin/mvn -Dmaven.wagon.provider.http=httpclient clean deploy -DskipTests -Prelease
[mchyzer@i2mibuild psp-parent]$ cd ../psp-distribution-for-grouper/target
[mchyzer@i2mibuild target]$ gzip -d grouper.psp-2.3.0.tar.gz 
[mchyzer@i2mibuild target]$ tar xf grouper.psp-2.3.0.tar 
[mchyzer@i2mibuild target]$ cd grouper.psp-2.3.0/lib/custom/
[mchyzer@i2mibuild custom]$ wget --no-check-certificate
HTTP request sent, awaiting response... 200 OK
Length: 301337 (294K) [application/octet-stream]
Saving to: `openspml2-1.0.jar'
100%[==========================================================================================>] 301,337     1.28M/s   in 0.2s    
2015-09-28 15:54:07 (1.28 MB/s) - `openspml2-1.0.jar' saved [301337/301337]
[mchyzer@i2mibuild grouper.psp-2.2.2]$ cd ..
[mchyzer@i2mibuild target]$ rm grouper.psp-2.3.0.tar
[mchyzer@i2mibuild target]$ tar cf grouper.psp-2.3.0.tar grouper.psp-2.3.0
[mchyzer@i2mibuild target]$ gzip grouper.psp-2.3.0.tar
[mchyzer@i2mibuild target]$ sftp webprod3
sftp> cd /home/htdocs/
sftp> put grouper.psp-2.3.0.tar.gz
Eclipse Development

The Shibboleth development wiki has guidelines for configuring Eclipse here.

These instructions are for Grouper version 2.1.0 or later.


To build Grouper using Maven and Eclipse :

Check out Grouper projects inside your Eclipse workspace directory. (Only some Grouper projects have been mavenized.)

Trunk :

svn co \ \ \ \ \

A tag :

svn co \ \ \ \ \

In the grouper and grouper-client projects, copy .classpath.mvn to .classpath.

cp grouper/.classpath.mvn grouper/.classpath
cp grouperClient/.classpath.mvn grouperClient/.classpath

Create default configuration files by running ant clean in the grouper project.

cd grouper
ant clean

In the grouper and grouperClient projects, make sure that Eclipse targets Java 1.6 in .settings/org.eclipse.jdt.core.prefs :


In the Eclipse Package Explorer right-click to select Import -> Maven -> Existing Maven Projects and select grouper-parent for the root directory.

Provisioning Service Provider (PSP)

Check out the psp projects inside your Eclipse workspace directory.

svn co java-provisioning-provider

In the Eclipse Package Explorer right-click to select Import -> Maven -> Existing Maven Projects and select psp-parent for the root directory.

Maven Central Deployment

To deploy to sonatype repository for release :

>export MAVEN_OPTS=-Xmx1024m

>cd grouper-parent
>mvn3 clean deploy -DskipTests -Prelease -Dgpg.passphrase=...

>export MAVEN_OPTS=-Xmx1024m>cd psp-parent
>mvn3 clean deploy -DskipTests -Prelease -Dgpg.passphrase=...

Snapshots URL :

Maven itself will upload everything. Once it's uploaded, login to sonatype and follow the instructions here:

Login to sonatype here

If you get an error about validating signatures, then run this as your user on the build server:

[mchyzer@i2mibuild .gnupg]$ gpg --send-keys

Then here:

Basically, close the repo, and then after it closed if the report comes back clean, you click "Promote" and that released it.

Dependency Management

Dependencies (i.e. third-party jars) should be defined in grouper-parent/pom.xml.

If a dependency is used in every child project, then the dependency should be defined under <dependencies>.

If a dependency is not used in every child project, then the dependency should be defined under <dependencyManagement>.

In child projects, omit the version number, since versions are controlled by the parent project.

Setting the Grouper version in the PSP

The Grouper version that the PSP is built against is customizable. Update the grouper.version property in psp-parent/pom.xml.

  • No labels