54 lines
2.1 KiB
Text
54 lines
2.1 KiB
Text
// This page describes MAVEN_MIRROR_URL variable usage
|
|
// It requires 'bcname' attribute to be set to the name of the product
|
|
|
|
A repository in Maven holds build artifacts and dependencies of various types
|
|
(all the project jars, library jar, plugins or any other project specific
|
|
artifacts). It also specifies locations from where to download artifacts from,
|
|
while performing the S2I build. Besides using central repositories, it is a
|
|
common practice for organizations to deploy a local custom repository (mirror).
|
|
|
|
Benefits of using a mirror are:
|
|
|
|
* Availability of a synchronized mirror, which is geographically closer and
|
|
faster.
|
|
* Ability to have greater control over the repository content.
|
|
* Possibility to share artifacts across different teams (developers, CI),
|
|
without the need to rely on public servers and repositories.
|
|
* Improved build times.
|
|
|
|
Often, a repository manager can serve as local cache to a mirror. Assuming that
|
|
the repository manager is already deployed and reachable externally at
|
|
*_pass:[http://10.0.0.1:8080/repository/internal/]_*, the S2I build can then use this
|
|
manager by supplying the `MAVEN_MIRROR_URL` environment variable to the
|
|
build configuration of the application as follows:
|
|
|
|
. Identify the name of the build configuration to apply `MAVEN_MIRROR_URL`
|
|
variable against:
|
|
+
|
|
[subs="attributes"]
|
|
----
|
|
oc get bc -o name
|
|
buildconfig/{bcname}
|
|
----
|
|
. Update build configuration of `{bcname}` with a `MAVEN_MIRROR_URL` environment variable
|
|
+
|
|
[subs="attributes"]
|
|
----
|
|
oc env bc/{bcname} MAVEN_MIRROR_URL="http://10.0.0.1:8080/repository/internal/"
|
|
buildconfig "{bcname}" updated
|
|
----
|
|
. Verify the setting
|
|
+
|
|
[subs="attributes"]
|
|
----
|
|
oc env bc/{bcname} --list
|
|
# buildconfigs {bcname}
|
|
MAVEN_MIRROR_URL=http://10.0.0.1:8080/repository/internal/
|
|
----
|
|
. Schedule new build of the application
|
|
|
|
NOTE: During application build, you will notice that Maven dependencies are
|
|
pulled from the repository manager, instead of the default public repositories.
|
|
Also, after the build is finished, you will see that the mirror is filled with
|
|
all the dependencies that were retrieved and used during the build.
|
|
|