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
-
... ... @@ -30,57 +30,42 @@ 30 30 31 31 = The Automatic Build Process = 32 32 33 - Thissection describes how our POMfilesaredistributed throughout the repository structure,and howyou can trigger anautomatic build ofKIELER.33 +=== Maven and Tycho in KIELER === 34 34 35 -== POM Files = =35 +In KIELER there is a parent POM located in {{code language="none"}}build/de.cau.cs.kieler.parent{{/code}}, there are mid-level POMs in {{code language="none"}}features{{/code}} and {{code language="none"}}plugins{{/code}} and finally each plugin and feature directory contains a POM file. Furthermore to handle building an Eclipse P2 repository and the KIELER RCA there is a special repository project with its own POM in {{code language="none"}}build/de.cau.cs.kieler.repository{{/code}}. As KIELER is built against a P2 repository generated from our Eclipse reference installation, the following magic command updates the P2 build repository after changes to the installation. 36 36 37 -The basic structure of the POM files can be seen below: 38 - 39 -[[image:attach:pomfiles.png]] 40 - 41 -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. 42 - 43 -== Using the KIELER Maven Build == 44 - 45 -Using the KIELER Maven build requires knowledge about two aspects: necessary configuration / required libraries and invoking Maven. 46 - 47 -=== Necessary Configuration === 48 - 49 -KIELER needs to be built against a P2 repository generated from our Eclipse reference installation. The path to this repository is found in the parent POM file and must be changed if the repository location changes. Also, when changing the reference installation, the repository has to be updated using the following magic command (adapted accordingly): 50 - 51 -{{code language="none"}} 52 -java -jar eclipse_3.8/plugins/org.eclipse.equinox.launcher_*.jar \ 37 +{{code}} 38 +java@aeon:~$ java -jar eclipse_3.8/plugins/org.eclipse.equinox.launcher_*.jar \ 53 53 -application org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher \ 54 54 -metadataRepository file:/home/java/repository/juno382 \ 55 55 -artifactRepository file:/home/java/repository/juno382 \ 56 56 -source /home/java/eclipse_3.8/ \ 57 57 -publishArtifacts 58 -{{/code}} 59 59 60 -=== Invoking Maven === 61 61 62 -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: 63 - 64 -{{code language="none"}} 65 -mvn clean package -P <profile> # For a list of available profiles, see parent pom.xml 66 66 {{/code}} 67 67 68 - Ifyou are trying to build KIELER on our server,you first have to setup the Java environment,ifyou haven't already done so. The command line thus becomes:48 +=== Things to be aware of === 69 69 70 -{{ code language="none"}}71 - ./home/java/java-env72 - mvncleanpackage-P <profile>#For a listofavailableprofiles,seeparentpom.xml73 -{{/ code}}50 +{{warning}} 51 +* Eclipse metadata and pom.xml files are not automatically synced. If you change for example version numbers, you have to modify pom.xml 52 +* There are files in the parent project which can be also found in the branding plugin. Keep them in sync! 53 +{{/warning}} 74 74 75 - OnceMaven has finished, the different build artifacts may be found in the {{code language="none"}}/build/de.cau.cs.kieler.*.repository/target{{/code}} directories.55 + 76 76 77 -== WhattoBeAwareof==57 +=== Building Kieler on the command line === 78 78 79 - Therearesomethings that people needtobe aware ofto keep thebuildfilesin avalidstate.59 +A full KIELER build on the command line is done as follows 80 80 81 -1. Eclipse metadata and POM files are not synchronized. Thus, if the version of an Eclipse plug-in changes, its {{code language="none"}}pom.xml{{/code}} needs to be updated accordingly. 82 -1. The repository POM directories contain product files and product icons. These are copies of the files found in the corresponding branding plug-ing (such as {{code language="none"}}de.cau.cs.kieler.core.product{{/code}}) and have to be manually synchronized. 61 +{{code title="Full Build" linenumbers="true" language="bash"}} 62 +. /home/java/java-env #sets environment variables for java and maven 63 +cd build/de.cau.cs.kieler.parent 64 +mvn clean package -P <profile> # Available profiles include indigo, juno38, juno42 65 +{{/code}} 83 83 67 +Afterwards the assembled RCA and P2 repository may be found in {{code language="none"}}build/de.cau.cs.kieler.repository/target{{/code}}. Similarly single plugins or features are found in the {{code language="none"}}target {{/code}}subdirectory of the respective package. 68 + 84 84 = Continuous and Nightly Builds = 85 85 86 86 There are basically three different build plans for each of the KIELER projects:
- Confluence.Code.ConfluencePageClass[0]
-
- Id
-
... ... @@ -1,1 +1,1 @@ 1 -61604 111 +6160409 - URL
-
... ... @@ -1,1 +1,1 @@ 1 -https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/KIELER/pages/61604 11/Build Management1 +https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/KIELER/pages/6160409/Build Management