Example PSP build from build server
Replace X Y Z's with the build number
[mchyzer@i2mibuild mchyzer]$ cd /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]$ svn co https://svn.internet2.edu/svn/i2mi/tags/GROUPER_X_Y_Z/grouper-parent https://svn.internet2.edu/svn/i2mi/tags/GROUPER_X_Y_Z/subject https://svn.internet2.edu/svn/i2mi/tags/GROUPER_X_Y_Z/grouper-misc/morphString https://svn.internet2.edu/svn/i2mi/tags/GROUPER_X_Y_Z/grouper-misc/grouperClient https://svn.internet2.edu/svn/i2mi/tags/GROUPER_X_Y_Z/grouper https://svn.internet2.edu/svn/i2mi/tags/GROUPER_X_Y_Z/ldappcng/grouper-shib [mchyzer@i2mibuild mchyzer_build]$ svn co https://svn.internet2.edu/svn/i2mi/java-provisioning-provider/tags/X.Y.Z psp_build [mchyzer@i2mibuild mchyzer_build]$ cp grouper/.classpath.mvn grouper/.classpath [mchyzer@i2mibuild mchyzer_build]$ cp grouperClient/.classpath.mvn grouperClient/.classpath [mchyzer@i2mibuild mchyzer_build]$ cd grouper [mchyzer@i2mibuild mchyzer_build]$ ant clean [mchyzer@i2mibuild mchyzer_build]$ ant [mchyzer@i2mibuild mchyzer_build]$ cd grouper-parent [mchyzer@i2mibuild grouper-parent]$ /home/mchyzer/software/apache-maven-3.0.3/bin/mvn clean deploy -DskipTests -Prelease [mchyzer@i2mibuild grouper-parent]$ cd ../psp_build/psp-parent/ [mchyzer@i2mibuild psp-parent]$ /home/mchyzer/software/apache-maven-3.0.3/bin/mvn clean deploy -DskipTests -Prelease [mchyzer@i2mibuild psp-parent]$ cd ../psp-distribution-for-grouper/target [mchyzer@i2mibuild target]$ sftp webprod0
Eclipse Development
The Shibboleth development wiki has guidelines for configuring Eclipse here.
These instructions are for Grouper version 2.1.0 or later.
Grouper
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 https://svn.internet2.edu/svn/i2mi/trunk/grouper-parent \ https://svn.internet2.edu/svn/i2mi/trunk/subject \ https://svn.internet2.edu/svn/i2mi/trunk/grouper-misc/morphString \ https://svn.internet2.edu/svn/i2mi/trunk/grouper-misc/grouperClient \ https://svn.internet2.edu/svn/i2mi/trunk/grouper \ https://svn.internet2.edu/svn/i2mi/trunk/ldappcng/grouper-shib
A tag :
svn co https://svn.internet2.edu/svn/i2mi/tags/GROUPER_2_1_0/grouper-parent \ https://svn.internet2.edu/svn/i2mi/tags/GROUPER_2_1_0/subject \ https://svn.internet2.edu/svn/i2mi/tags/GROUPER_2_1_0/grouper-misc/morphString \ https://svn.internet2.edu/svn/i2mi/tags/GROUPER_2_1_0/grouper-misc/grouperClient \ https://svn.internet2.edu/svn/i2mi/tags/GROUPER_2_1_0/grouper \ https://svn.internet2.edu/svn/i2mi/tags/GROUPER_2_1_0/ldappcng/grouper-shib
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
:
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 org.eclipse.jdt.core.compiler.compliance=1.6 org.eclipse.jdt.core.compiler.source=1.6
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 https://svn.internet2.edu/svn/i2mi/java-provisioning-provider/trunk/ 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 : https://oss.sonatype.org/content/repositories/snapshots/edu/internet2/middleware
Maven itself will upload everything. Once it's uploaded, login to sonatype and follow the instructions here:
https://docs.sonatype.org/display/Repository/Closing+a+Staging+Repository
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
.