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
-
... ... @@ -40,7 +40,7 @@ 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. In addition, the {{code language="none"}}build{{/code}} directory also contains a bunch of subdirectories. These also contain POM files specializedfor building theP2 repositoriesnecessarytopublishourEclipsefeatures.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. These also contain POM files that actually implement the different build configurations to produce p2 repositories and products we can deliver. 44 44 45 45 === Using the KIELER Maven Build === 46 46 ... ... @@ -48,28 +48,25 @@ 48 48 49 49 ==== Necessary Configuration ==== 50 50 51 -KIELER needs to be built against a P2 repository generated from ourEclipse reference installation.Thepathtothis repositoryis found in the parentPOM fileandmustbechangedf the repositorylocationchanges.Also, whenchanging thereferenceinstallation, therepository hastobeupdatedusingthefollowingmagiccommand(adaptedaccordingly):51 +KIELER needs to be built against a P2 repository generated from an Eclipse reference installation (the //target platform//). The command for doing that is described on [[this page>>doc:Eclipse Server Installation]]. The target platform is available online so you don't have to worry about it when building KIELER on your local computer. 52 52 53 -{{code language="none"}} 54 -java -jar eclipse_3.8/plugins/org.eclipse.equinox.launcher_*.jar \ 55 --application org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher \ 56 --metadataRepository file:/home/java/repository/juno382 \ 57 --artifactRepository file:/home/java/repository/juno382 \ 58 --source /home/java/eclipse_3.8/ \ 59 --publishArtifacts 60 -{{/code}} 61 - 62 62 ==== Invoking Maven ==== 63 63 64 -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:55 +To actually build KIELER once all preliminaries are done, navigate to the {{code language="none"}}/build/{{/code}} directory and run the following command line: 65 65 66 66 {{code language="none"}} 67 67 . /home/java/java-env # Only necessary when working on our servers 68 -mvn clean package -P <profile> # For a list of available profiles, see parent pom.xml59 +mvn clean package -P <profile> 69 69 {{/code}} 70 70 71 -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.62 +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: 72 72 64 +* klighdning – Builds a standalone version of the KLighDning server. 65 +* kwebs – Builds a standalone version of the KWebS server. 66 +* papyrus – Builds a p2 repository that contains our feature for adding automatic layout to a Papyrus installation. 67 +* pragmatics – Builds a p2 repository that contains our pragmatics features. 68 +* ptolemy-rcp – Produces a standalone version of our Ptolemy Model Viewer. 69 + 73 73 === What to Be Aware of === 74 74 75 75 There are some things that people need to be aware of to keep the build files in a valid state. ... ... @@ -81,7 +81,8 @@ 81 81 82 82 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: 83 83 84 -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. 81 +1. Set the TARGET_PLATFORM environment variable to point to a local copy of our currently used target platform p2 repository. 82 +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. 85 85 1. Run Ant on the {{code language="none"}}build.xml{{/code}} file. This will produce both versions of the KLay layout library. 86 86 87 87 == Continuous and Nightly Builds == ... ... @@ -89,7 +89,7 @@ 89 89 There are basically three different build plans for each of the KIELER projects: 90 90 91 91 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. 92 -1. **Nightly Product** – Compilesthe plug-insand 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 planis run once every night.90 +1. **Nightly <Product>** – Assembles distributable product files and/or 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}}. These plans are run once every night. 93 93 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. 94 94 1. **Release Builds** – Continuous builds of release branches once a release is imminent. These usually run whenever changes are pushed into the repository. 95 95 ... ... @@ -122,13 +122,33 @@ 122 122 ...klay.libraries/build.xml 123 123 {{/code}} 124 124 )))|((( 125 -KIELER Pragmatics -> Nightly Product123 +KIELER Pragmatics -> Nightly KLay 126 126 )))|(% colspan="1" %)(% colspan="1" %) 127 127 ((( 128 128 {{code language="none"}} 129 -/home/kieler/public_html/files/nightly/ 127 +/home/kieler/public_html/files/nightly/klay 130 130 {{/code}} 131 131 ))) 130 +|(% colspan="1" %)(% colspan="1" %) 131 +((( 132 +KLighDning RCA 133 +)))|(% colspan="1" %)(% colspan="1" %) 134 +((( 135 +Pragmatics 136 +)))|(% colspan="1" %)(% colspan="1" %) 137 +((( 138 +{{code language="none"}} 139 +...klighdning.repository/pom.xml 140 +{{/code}} 141 +)))|(% colspan="1" %)(% colspan="1" %) 142 +((( 143 +KIELER Pragmatics -> Nightly KLighDning 144 +)))|(% colspan="1" %)(% colspan="1" %) 145 +((( 146 +{{code language="none"}} 147 +/home/kieler/public_html/files/nightly/klighning 148 +{{/code}} 149 +))) 132 132 |((( 133 133 KWebS RCA 134 134 )))|((( ... ... @@ -142,7 +142,7 @@ 142 142 )))|(% colspan="1" %)(% colspan="1" %) 143 143 ((( 144 144 {{code language="none"}} 145 -/home/kieler/public_html/files/nightly/ 163 +/home/kieler/public_html/files/nightly/kwebs 146 146 {{/code}} 147 147 ))) 148 148 |(((
- Confluence.Code.ConfluencePageClass[0]
-
- Id
-
... ... @@ -1,1 +1,1 @@ 1 - 61605161 +7701017 - URL
-
... ... @@ -1,1 +1,1 @@ 1 -https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/KIELER/pages/ 6160516/Build Management1 +https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/KIELER/pages/7701017/Build Management