| ## Building this repo (DEPRECATED) |
| |
| 1. Fetch sources |
| |
| git clone http://git.eclipse.org/gitroot/webtools/webtools.releng.aggregator.git |
| |
| 2a. Or, just check out the projects you care about, eg., if you want to contribute to servertools: |
| |
| git clone http://git.eclipse.org/gitroot/webtools-common/webtools.common.git |
| git clone http://git.eclipse.org/c/servertools/webtools.servertools.git |
| |
| NOTE: See the link:https://wiki.eclipse.org/WTP_Gerrit_Access#Clone_a_repository_for_development[complete list of projects here]. |
| |
| 2b.*DEPRECATED* OR, you can fetch all the 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 |
| |
| [start=3] |
| 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.txt |
| |
| To build against local changes in common or servertools: |
| |
| mvn clean install -V -B -PCI \ |
| -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/ \ |
| | tee log-aggregate-local-changes-to-common-and-servertools.txt |
| |
| 4b. *DEPRECATED* OR, build everything in this repo, including all the submodules, from scratch. May take over 2 hrs, and requires that the submodules are all up to date (step 2b). |
| |
| 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 link:http://git.eclipse.org/c/webtools/webtools.releng.aggregator.git/tree/wtp-parent/pom.xml#n70[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) |
| |
| --- |
| |
| Webtools has moved away from being a monolithic submodule-based uber-build (see 4b above) and toward a sequential series of builds (see 4a above). |
| |
| This allows 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 (see -Dwebtools-* flags above) or the latest 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-06-21 @nickboldt |