3.3. Build Process FAQ / Tips and Tricks

This section gives answers and hints to common build issues.

Q: After running a local product build, where do I find the generated product zips and files?
Q: When running a product build, how can I change the server URL where p2 artifacts (e.g. the "target platform") are loaded from?
Q: I created a new snapshot / RC / release build of the "platform" repository. What do I have to edit to make the product build use it?

Q:

After running a local product build, where do I find the generated product zips and files?

A:

The generated files are located in de.rcenvironment/target/de.rcenvironment.modules.repository.mainProduct/products .

Q:

When running a product build, how can I change the server URL where p2 artifacts (e.g. the "target platform") are loaded from?

A:

To support typical build use cases, p2 server URLs are normally assembled from two parts: a common URL "root" part, and a repository-specific URL segment. The default values for these are defined in the build pre-processor script at /de.rcenvironment/maven/preprocessor/scripts/RCEBuildPreprocessor.groovy .

Note

For example, the default "target platform" repository URL for the 8.1.0 release is the concatenation of the default URL "root" part https://software.dlr.de/updates/rce/8.x/repositories/ and the specific repository segment releases/8.1.0. The same pattern using the same "root" URL, but different specific segments would also be used for other repositories. However, as of 8.1.0, the "platform" repository is the only one used during the default build. The only other valid option is "intermediate", which is only used in special builds.

There are three ways to change these URLs, depending on the build use case.

  • If you want to switch to a different server that provides all of the required repositories, you can simply override the URL "root" part, and all p2 repositories will be loaded from there. This can be done by setting the Maven property rce.maven.repositories.default.rootUrl.

  • To override the URL root path of a single repository, set the Maven property rce.maven.repositories.<id>.rootUrl, with <id> being "platform" or "intermediate".

  • Alternatively, you can also override the complete URL of a repository by setting the Maven property rce.maven.repositories.<id>.url with the same ids as above.

All of these settings can be combined, with more specific settings overriding the more general ones (e.g. a custom repository URL overrides a custom root URL).

Note that these approaches are only intended for adapting the build to your build environment, or for local building and testing. To change the repository paths permanently (e.g. when preparing a new release), edit the default values in the build pre-processor script at /de.rcenvironment/maven/preprocessor/scripts/RCEBuildPreprocessor.groovy. Note that there are two sets of specific repository URL segments which are used for snapshot and RC/release builds, respectively.

Q:

I created a new snapshot / RC / release build of the "platform" repository. What do I have to edit to make the product build use it?

A:

The default repository references are configured in the defaultRepositoryUrlSuffixes map within the build pre-processor script at /de.rcenvironment/maven/preprocessor/scripts/RCEBuildPreprocessor.groovy. Snapshot and RC/release references are configured separately to support developing against snapshot builds. These references are the repository-specific URL suffixes; see the question above for examples.

Note that when preparing for a new major release, you may also have to adapt the "root" URL part (e.g. changing it from <...>/rce/8.x/repositories/ to <...>/rce/9.x/repositories/), and have to deploy the referenced repository builds to that new location.