blob: 636c014ca6cf234d92004700f288bf73a5739da3 [file] [log] [blame]
nickboldt0fc0f762017-10-13 18:07:54 -04001## Building this repo
2
nickboldt8e88ced2018-06-21 13:52:35 -040031. fetch sources for this project, and other webtools projects you care about. For example, to contribute a fix to webtools.servertools:
nickboldt0fc0f762017-10-13 18:07:54 -04004
Nitin Dahyabhai4ad84d22018-08-22 17:13:17 -04005 git clone https://git.eclipse.org/r/webtools/webtools.releng.aggregator.git
nickboldt0fc0f762017-10-13 18:07:54 -04006
Nitin Dahyabhai4ad84d22018-08-22 17:13:17 -04007 git clone https://git.eclipse.org/r/webtools-common/webtools.common.git
8 git clone https://git.eclipse.org/r/servertools/webtools.servertools.git
nickboldt0fc0f762017-10-13 18:07:54 -04009
nickboldt8e88ced2018-06-21 13:52:35 -040010NOTE: See the link:https://wiki.eclipse.org/WTP_Gerrit_Access#Clone_a_repository_for_development[complete list of projects here].
nickboldt0fc0f762017-10-13 18:07:54 -040011
nickboldt8e88ced2018-06-21 13:52:35 -0400122. give maven more memory, if needed
nickboldt0fc0f762017-10-13 18:07:54 -040013
Nitin Dahyabhai4ad84d22018-08-22 17:13:17 -040014 set MAVEN_OPTS="-Xmx1024m" # windows users
nickboldt5688b372017-12-14 10:47:40 -050015 # or
Nitin Dahyabhai4ad84d22018-08-22 17:13:17 -040016 export MAVEN_OPTS="-Xmx1024m" # linux/macos users
nickboldt0fc0f762017-10-13 18:07:54 -040017
nickboldt8e88ced2018-06-21 13:52:35 -0400183. Build local changes to common and/or servertools:
nickboldt0fc0f762017-10-13 18:07:54 -040019
nickboldt8e88ced2018-06-21 13:52:35 -040020 cd webtools.common
21 mvn clean install
22 cd ..
nickboldtdc1094a2018-03-12 13:56:29 -040023
nickboldt8e88ced2018-06-21 13:52:35 -040024 cd webtools.servertools
25 mvn clean install \
26 -Dwebtools-common-site=file:///path/to/where/you/build/locally/webtools.common/site/target/repository/
27 cd ..
nickboldtdc1094a2018-03-12 13:56:29 -040028
nickboldt8e88ced2018-06-21 13:52:35 -0400294. Aggregate local changes in common, servertools, and any other locally built webtools projects:
nickboldt0fc0f762017-10-13 18:07:54 -040030
nickboldt8e88ced2018-06-21 13:52:35 -040031 cd webtools.releng.aggregator
32 mvn clean install -V -B -PCI \
33 -Dwebtools-common-site=file:///path/to/where/you/build/locally/webtools.common/site/target/repository/ \
34 -Dwebtools-servertools-site=file:///path/to/where/you/build/locally/webtools.servertools/site/target/repository/ \
35 -Dwebtools-servertools-integration-site=file:///path/to/where/you/build/locally/webtools.servertools/site-integration/target/repository/ \
36 | tee log-aggregate-local-changes-to-common-and-servertools.txt
37 cd ..
38
39That's it! If you have more local changes to aggregate, use more `-Dwebtools-\*-site` flags to reference your local changes.
40
41Some link:http://git.eclipse.org/c/webtools/webtools.releng.aggregator.git/tree/wtp-parent/pom.xml#n70[other flags] you can use:
nickboldt5688b372017-12-14 10:47:40 -050042
nickboldtdc1094a2018-03-12 13:56:29 -040043 -P CI # build using upstream CI jobs' repos instead of having to build all the projects in the same reactor
44 -P bree-libs # build using strict adherence to Bundle-RequireExecutionEnvironment (BREE) rules. Requires a ~/.m2/toolchains.xml file.
45
nickboldt5688b372017-12-14 10:47:40 -050046 -Dplatform-repo.url=http://download.eclipse.org/eclipse/updates/4.8-I-builds/
nickboldtdc1094a2018-03-12 13:56:29 -040047
nickboldt5688b372017-12-14 10:47:40 -050048 -Dwebtools.buildSite=http://download.eclipse.org/webtools/downloads/drops/R3.10.0/I-3.10.0-20171004000115/
49 -Dwebtools.buildSite=http://build.eclipse.org/webtools/committers/wtp-R3.10.0-I/20171211000140/I-3.10.0-20171211000140/
50
nickboldtdc1094a2018-03-12 13:56:29 -040051 -Dwebtools-common-site=file:///path/to/where/you/build/locally/webtools.common/site/target/repository/
52 -Dwebtools-servertools-site=file:///path/to/where/you/build/locally/webtools.servertools/site/target/repository/
53 -Dwebtools-servertools-integration-site=file:///path/to/where/you/build/locally/webtools.servertools/site-integration/target/repository/
54 -Dwebtools-jeetools-site=file:///path/to/where/you/build/locally/webtools.javaee/site/target/repository/
55 ...
56
nickboldt5688b372017-12-14 10:47:40 -050057Note the above profiles:
nickboldt0fc0f762017-10-13 18:07:54 -040058
nickboldt00321c32017-10-13 20:47:05 -040059* bree-libs profile may not work if you don't have old JDKs (eg., JDK5) installed locally
nickboldtdc1094a2018-03-12 13:56:29 -040060* integration profile is needed to build the SDK & integration features (cross-repo dependencies) (DEPRECATED)
nickboldt0fc0f762017-10-13 18:07:54 -040061
62---
63
nickboldt8e88ced2018-06-21 13:52:35 -040064As of Webtools 3.10, this build requires is a series of individual CI builds, followed by a simple aggregation. The old approach with one large monolithic build and git submodules, is link:README-deprecated.adoc[documented here].
nickboldt0fc0f762017-10-13 18:07:54 -040065
nickboldt9568a832018-07-09 12:53:54 -040066## Building the upstream projects
67
nickboldt7a277ed2018-07-09 12:54:31 -040068To build all the individual projects in order, see this link:https://ci.eclipse.org/webtools/job/WTP-Pipeline_master/[pipeline] or link:pipeline/Jenkinsfile[Jenkinsfile] which lists the correct sequence of dependencies.
nickboldt9568a832018-07-09 12:53:54 -040069
nickboldt7a277ed2018-07-09 12:54:31 -040070Here's a list of the link:https://wiki.eclipse.org/WTP_Gerrit_Access#Clone_a_repository_for_development[git projects] and where to get them.
nickboldt9568a832018-07-09 12:53:54 -040071
72-- 2018-07-09 @nickboldt