blob: 2f73c324923f144b0d486dd841b0cdd8ce9ced52 [file] [log] [blame]
## Building this repo
1. fetch sources
git clone http://git.eclipse.org/gitroot/webtools/webtools.releng.aggregator.git
2. fetch submodules recursively, then update to latest on that branch
git submodule update --init --recursive
for d in webtools.*; do echo $d; pushd $d; git pull origin master; popd; done # **
3. give maven more memory, if needed
set MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=128m" # windows users
# or
export MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=128m" # linux users
4a. build just the aggregate, using upstream CI builds. Should take under 20 mins.
mvn clean install -V -B -PCI | tee log-aggregate-only.txt
4b. OR, build everything in this repo, including all the submodules, from scratch. May take over 2 hrs. This approach is DEPRECATED.
mvn clean install -f pom-build-everything.xml -V -B -Dmaven.test.skip=true -DskipWithIssues=false \
-Dmaven.test.error.ignore=true -Dmaven.test.failure.ignore=true \
-Dsurefire.timeout=1800 -P bree-libs -P integration -ff \
| tee log-everything-build.txt
Some other flags you can use:
-P CI # build using upstream CI jobs' repos instead of having to build all the projects in the same reactor
-P bree-libs # build using strict adherence to Bundle-RequireExecutionEnvironment (BREE) rules. Requires a ~/.m2/toolchains.xml file.
-Dplatform-repo.url=http://download.eclipse.org/eclipse/updates/4.8-I-builds/
-Dwebtools.buildSite=http://download.eclipse.org/webtools/downloads/drops/R3.10.0/I-3.10.0-20171004000115/
-Dwebtools.buildSite=http://build.eclipse.org/webtools/committers/wtp-R3.10.0-I/20171211000140/I-3.10.0-20171211000140/
-Dwebtools-common-site=file:///path/to/where/you/build/locally/webtools.common/site/target/repository/
-Dwebtools-servertools-site=file:///path/to/where/you/build/locally/webtools.servertools/site/target/repository/
-Dwebtools-servertools-integration-site=file:///path/to/where/you/build/locally/webtools.servertools/site-integration/target/repository/
-Dwebtools-jeetools-site=file:///path/to/where/you/build/locally/webtools.javaee/site/target/repository/
...
Note the above profiles:
* bree-libs profile may not work if you don't have old JDKs (eg., JDK5) installed locally
* integration profile is needed to build the SDK & integration features (cross-repo dependencies) (DEPRECATED)
---
This repo is being transformed as webtools is moving away from a monolithic submodule-based uber-build (see 4b above) and toward a sequential series of builds (see 4a above).
This will allow users to build individual projects w/o having to check out and build the entire stack. For example, to contribute a fix to webtools.common, you need only fetch that project and build it by itself; then if you want to contribute a fix to a downstream project, such as webtools.servertools, you can rely on the latest local or CI build of webtools.common.
This will allow development to be more agile, more reactive, and to move incrementally without the need for this project.
-- 2018-03-12 @nickboldt