Changes for page Build Management
Last modified by Richard Kreissig on 2023/09/14 08:50
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Objects (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -36,34 +36,31 @@ 36 36 37 37 === POM Files === 38 38 39 -The basic structure of the POM files is the same for both, the pragmaticsandsemantics repository, and canbe seen below:39 +The basic structure of the POM files can be seen below: 40 40 41 41 [[image:attach:pomfiles.png]] 42 42 43 -Each plug-in and feature has a corresponding (usually rather small) POM file. The POM files in the {{code language="none"}}features{{/code}} and {{code language="none"}}plugins{{/code}} directories know about the different features and plug-ins. The parent POM file, which all other POM files copy basic configuration from, knows about the feature and plug-in POM files , as well as about every kind of build configuration we have (for building the pragmatics repository, for building the KWebS product, etc.).In addition, the {{code language="none"}}build{{/code}} directory also contains a bunch of subdirectories housingPOM filesthatproduce ourp2 repositoriesandourproducts.43 +Each plug-in and feature has a corresponding (usually rather small) POM file. The POM files in the {{code language="none"}}features{{/code}} and {{code language="none"}}plugins{{/code}} directories know about the different features and plug-ins. The parent POM file, which all other POM files copy basic configuration from, knows about the feature and plug-in POM files. In addition, the {{code language="none"}}build{{/code}} directory also contains a bunch of subdirectories. These also contain POM files specialized for building the P2 repositories necessary to publish our Eclipse features. 44 44 45 45 === Using the KIELER Maven Build === 46 46 47 -Using the KIELER Maven build requires two things: a working Maven installation (d'oh...) and knowledge abouthowexactlytotriggerabuild.Weleave the former to you, but the latteriswhatthis sectionisabout.47 +Using the KIELER Maven build requires knowledge about two aspects: necessary configuration / required libraries and invoking Maven. 48 48 49 - Toactuallybuild KIELER,navigate to the {{code language="none"}}/build/{{/code}} directoryand runthe following commandline:49 +==== Necessary Configuration ==== 50 50 51 +KIELER needs to be built against a P2 repository generated from an Eclipse reference installation. The command for doing that is described on [[this page>>doc:Eclipse Server Installation]]. You may need to adapt the reference repository location in the parent POM files. 52 + 53 +==== Invoking Maven ==== 54 + 55 +To actually build KIELER once all preliminaries are done, navigate to the {{code language="none"}}/build/de.cau.cs.kieler.parent{{/code}} directory and run the following command line: 56 + 51 51 {{code language="none"}} 52 52 . /home/java/java-env # Only necessary when working on our servers 53 -mvn clean package -P <profile> 59 +mvn clean package -P <profile> # For a list of available profiles, see parent pom.xml 54 54 {{/code}} 55 55 56 -Once Maven has finished, the different build artifacts may be found in the {{code language="none"}}/build/de.cau.cs.kieler. <profile>.repository/target{{/code}} directories.The following build profiles are available in the KIELER Pragmatics repository:62 +Once Maven has finished, the different build artifacts may be found in the {{code language="none"}}/build/de.cau.cs.kieler.*.repository/target{{/code}} directories. 57 57 58 -* klighdning – Builds a standalone version of the KLighDning server, based on the current nightly pragmatics update site. 59 -* kwebs – Builds a standalone version of the KWebS server, based on the current nightly pragmatics update site. 60 -* pragmatics – Builds a p2 repository that contains our pragmatics features. This is what would usually be pushed online for people to download as our nightly pragmatics build. 61 -* ptolemy-rcp – Produces a standalone version of our Ptolemy Model Viewer, based on the current nightly build pragmatics update site. 62 - 63 -The following build profiles are available in the KIELER Semantics repository: 64 - 65 -* TODO: Add build profiles. 66 - 67 67 === What to Be Aware of === 68 68 69 69 There are some things that people need to be aware of to keep the build files in a valid state. ... ... @@ -75,22 +75,15 @@ 75 75 76 76 We distribute our KLay layout algorithms in two library files: one that contains just our algorithms, and another one that also contains dependencies such as required EMF classes. To build the KLay libraries, navigate to the {{code language="none"}}/build/de.cau.cs.kieler.klay.libraries{{/code}} directory and do the following: 77 77 78 -1. Set the TARGET_PLATFORM environment variable to point to a local copy of our currently used target platform p2 repository. Ask {{mention reference="XWiki.cds" style="FULL_NAME" anchor="XWiki-cds-BDGaI"/}} where you can get that. 79 -1. Set the {{code language="none"}}KIELER_REPOSITORY{{/code}} environment variable to point to a local copy of a p2 repository of our pragmatics build. Again, ask {{mention reference="XWiki.cds" style="FULL_NAME" anchor="XWiki-cds-eBnpF"/}} where you can get that. 75 +1. Set the {{code language="none"}}PRODUCT{{/code}} environment variable to point to a complete installation of KIELER. You can get one by using the automatic Maven build. 80 80 1. Run Ant on the {{code language="none"}}build.xml{{/code}} file. This will produce both versions of the KLay layout library. 81 81 82 -{{note}} 83 -We would love to switch our KLay library build over to Maven since that would allow us to publish the library in an official Maven artifact repository. 84 -{{/note}} 85 - 86 - 87 - 88 88 == Continuous and Nightly Builds == 89 89 90 -There are basically four differentkinds ofbuild plans for each of the KIELER projects:80 +There are basically three different build plans for each of the KIELER projects: 91 91 92 -1. **Continuous Plugins** – Compiles the plug-ins and runs the unit tests on them. None of the compiled artifacts are published anywhere (in fact, no update site or product is even produced). This plan is triggered by pushing stuff into the repositories, giving early feedback regarding whether committed changes break anything.93 -1. **Nightly <Product>** –Assembles distributable product files and/orupdate sites. Distributable files are published in the nightly build directory {{code language="none"}}/home/kieler/public_html/files/nightly{{/code}}. Update sites are published in {{code language="none"}}/home/kieler/public_html/updatesite/nightly{{/code}}. Theseplansare run once every night.82 +1. **Continuous Plugins** – Compiles the plug-ins and runs the unit tests on them. None of the compiled artifacts are published anywhere. This plan is triggered by pushing stuff into the repositories, giving early feedback regarding whether committed changes break anything. 83 +1. **Nightly Product** – Compiles the plug-ins and assembles distributable product files and update sites. Distributable files are published in the nightly build directory {{code language="none"}}/home/kieler/public_html/files/nightly{{/code}}. Update sites are published in {{code language="none"}}/home/kieler/public_html/updatesite/nightly{{/code}}. This plan is run once every night. 94 94 1. **Nightly Rating** – Compiles the plug-ins and runs our code quality rating doclet on them. The result is a website published at {{code language="none"}}/home/kieler/public_html/rating{{/code}}. This plan is run once every night. 95 95 1. **Release Builds** – Continuous builds of release branches once a release is imminent. These usually run whenever changes are pushed into the repository. 96 96 ... ... @@ -123,33 +123,13 @@ 123 123 ...klay.libraries/build.xml 124 124 {{/code}} 125 125 )))|((( 126 -KIELER Pragmatics -> Nightly KLay116 +KIELER Pragmatics -> Nightly Product 127 127 )))|(% colspan="1" %)(% colspan="1" %) 128 128 ((( 129 129 {{code language="none"}} 130 -/home/kieler/public_html/files/nightly/ klay120 +/home/kieler/public_html/files/nightly/ 131 131 {{/code}} 132 132 ))) 133 -|(% colspan="1" %)(% colspan="1" %) 134 -((( 135 -KLighDning RCA 136 -)))|(% colspan="1" %)(% colspan="1" %) 137 -((( 138 -Pragmatics 139 -)))|(% colspan="1" %)(% colspan="1" %) 140 -((( 141 -{{code language="none"}} 142 -...klighdning.repository/pom.xml 143 -{{/code}} 144 -)))|(% colspan="1" %)(% colspan="1" %) 145 -((( 146 -KIELER Pragmatics -> Nightly KLighDning 147 -)))|(% colspan="1" %)(% colspan="1" %) 148 -((( 149 -{{code language="none"}} 150 -/home/kieler/public_html/files/nightly/klighning 151 -{{/code}} 152 -))) 153 153 |((( 154 154 KWebS RCA 155 155 )))|((( ... ... @@ -163,7 +163,7 @@ 163 163 )))|(% colspan="1" %)(% colspan="1" %) 164 164 ((( 165 165 {{code language="none"}} 166 -/home/kieler/public_html/files/nightly/ kwebs136 +/home/kieler/public_html/files/nightly/ 167 167 {{/code}} 168 168 ))) 169 169 |(((
- Confluence.Code.ConfluencePageClass[0]
-
- Id
-
... ... @@ -1,1 +1,1 @@ 1 - 86508461 +7701008 - URL
-
... ... @@ -1,1 +1,1 @@ 1 -https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/KIELER/pages/ 8650846/Build Management1 +https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/KIELER/pages/7701008/Build Management