1) README.txt in portal-parent is a bit outdated. I've put together a
proposal for a new one [1]. I've tested the instructions with empty local
repo.
2) Also, I propose we remove packaging/profiles.xml, as it's not maven 3
compatible, and move properties definitions to packaging/pom.xml.
3) Also, we should move arguments checking (maven-enforcer-plugin) into
portal-parent pom.xml so that when I do: 'mvn clean install -Ppkg-jbossas5'
I'm immediately notified about a missing
-Dexo.projects.directory.dependencies.
4) Then there was suggestion by Nick to also document and properly handle
'gatein.working.dir' property which he's been relying on.
I suggest moving it from packaging/pkg/pom.xml to packaging/pom.xml together
with the rest of properties (those currently in profiles.xml).
5) And, Chris suggested to put some kind of short help message at the
beginning of the build (like echo ...) that would list example command lines
for all the packaging options, to make it super user-friendly for users.
[1]
Prerequisites
==========
- Java Development Kit 1.6
- Recent Subversion client
- Recent Maven 3 (or Maven 2.2.1)
Build instructions
=============
1) Configure maven repositories:
Create file settings.xml in $HOME/.m2 (%HOMEPATH%\.m2 on Windows) with the
following content:
<settings>
<profiles>
<profile>
<id>jboss-public-repository</id>
<repositories>
<repository>
<id>jboss-public-repository-group</id>
<name>JBoss Public Maven Repository Group</name>
<url>
https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>jboss-public-repository-group</id>
<name>JBoss Public Maven Repository Group</name>
<url>
https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
<profile>
<id>exo-public-repository</id>
<repositories>
<repository>
<id>exo-public-repository-group</id>
<name>eXo Public Maven Repository Group</name>
<
url>http://repository.exoplatform.org/content/groups/public</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>exo-public-repository-group</id>
<name>eXo Public Maven Repository Group</name>
<
url>http://repository.exoplatform.org/content/groups/public</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>jboss-public-repository</activeProfile>
<activeProfile>exo-public-repository</activeProfile>
</activeProfiles>
</settings>
2) Check out gatein-portal
svn co
http://anonsvn.jboss.org/repos/gatein/portal/trunk gatein-portal
cd gatein-portal
3) Prepare containers to use for packaging
Create a directory on your disk that will contain specific released versions
of JBoss-AS, Tomcat, Jetty, or some other container, used as a template for
GateIn packaging.
Let’s refer to this directory as CONTAINERS_DIR.
4) Build and package gatein-portal
GateIn can be packaged with different web / application servers. The
specific container to use is selected by using an appropriate profile.
Packaging with JBoss-AS-5.1.0.GA
----------------------------------------------------
If you don’t have an existing JBoss-AS distribution, tell the build to
automatically download it for you.
Issue the following command:
mvn clean install -Ppkg-jbossas5,download
-Dexo.projects.directory.dependencies=$CONTAINERS_DIR
If you have an already downloaded JBoss-AS-5.1.0.GA distribution from
jboss.org, unpack it into CONTAINERS_DIR directory so that you get
CONTAINERS_DIR/jboss-5.1.0.GA directory.
Issue the following command:
mvn clean install -Ppkg-jbossas5
-Dexo.projects.directory.dependencies=$CONTAINERS_DIR
The packaged GateIn is available in packaging/jboss-as5/pkg/target/jboss.
Packaging with JBoss-AS-6.0.0.Final
----------------------------------------------------
If you don’t have an existing JBoss-AS distribution, tell the build to
automatically download it for you.
Issue the following command:
mvn clean install -Ppkg-jbossas6,download
-Dexo.projects.directory.dependencies=$CONTAINERS_DIR
If you have an already downloaded JBoss-AS-6.0.0.Final distribution from
jboss.org, unpack it into CONTAINERS_DIR directory so that you get
CONTAINERS_DIR/jboss-6.0.0.Final directory.
Issue the following command:
mvn clean install -Ppkg-jbossas6
-Dexo.projects.directory.dependencies=$CONTAINERS_DIR
The packaged GateIn is available in packaging/jboss-as6/pkg/target/jboss.
Packaging with Tomcat 6.x.x
----------------------------------------------------
Download latest Tomcat 6.x.x distribution from
tomcat.apache.org, and unpack
it into CONTAINERS_DIR directory so that you get
CONTAINERS_DIR/apache-tomcat-6.x.x directory.
Issue the following command:
mvn clean install -Ppkg-tomcat
-Dexo.projects.directory.dependencies=$CONTAINERS_DIR
-Dexo.projects.app.tomcat.version=apache-tomcat-6.x.x
The packaged GateIn is available in packaging/tomcat/pkg/tc6/target/tomcat6.
Packaging with Tomcat 7.x.x
----------------------------------------------------
Download latest Tomcat 7.x.x distribution from
tomcat.apache.org, and unpack
it into CONTAINERS_DIR directory so that you get
CONTAINERS_DIR/apache-tomcat-7.x.x directory.
Issue the following command:
mvn clean install -Ppkg-tomcat7
-Dexo.projects.directory.dependencies=$CONTAINERS_DIR
-Dexo.projects.app.tomcat7.version=apache-tomcat-7.x.x
The packaged GateIn is available in packaging/tomcat/pkg/tc7/target/tomcat7.
(eof)
- marko