-
Notifications
You must be signed in to change notification settings - Fork 4
Composite Repository Build
p2 composite repositories are a pair of XML files that link to a list of other repositories. They are similar to an html page that list a set of hyperlinks. The links must either be relative to the current location either be complete URLs.
Composite repositories are generated by the tycho-p2-scripts in an easy manner by navigating the filesystem and using glob expressions.
A single composite repository is generated by each project.
tycho-p2-scripts requires the 2 files to be present at the root of the project:
-
Buildfile: defines the groupId and the version and build number.
-
children.repos: defines the selectors of the children repositories.
At the minimum, it must define a project with a version and a groupId:
VERSION_NUMBER="1.0.0.001-SNAPSHOT" define "intalio-mycompositerepo" do project.version = VERSION_NUMBER project.group = "org.intalio.cloud.mycompositerepo" #Insert custom build here end
It is important to pad the build number with ‘0s’ 3 digits long is recommended.
Although the syntax follows the apache-buildr syntax, note that tycho-p2-script does not invoke buildr. If buildr is present it is possible to define some tasks to execute. tycho-p2-scripts will invoke them and give you the opportunity to do more than just generate the composite repository.
Each line of the ‘repos’ file can be:
-
A comment if it starts with ‘#’
-
An absolute URL to another repository if it contains ‘://’
-
An absolute path on the filesystem if it starts with ‘/’
-
The definition of a base directory if it starts with BASE=
-
A path relative to the current BASE to a p2 repository.
-
Both the absolute and relative path support a glob expression for the last segment of the path.
-
Each line if it contains shell variables will have those variables expanded.
#add an external repo to the children: http://www.intalio.org/public/p2repo/org/jruby/ #add a set of repos relative to the home directory BASE=$HOME/p2repo/org eclipse/eclipse/updates/3.6 eclipse/jetty/updates/3.7milestones/S-3.7.RC3-201106010634 #BASE: all relative paths will be relative to the BASE BASE=$HOME/p2repo/com/intalio/cloud #select the child repositories: select the versionned repositories #then choose the latest ones amongst each selected repository. cas/master/* platform/performance/1.0.0.004 bpm/master/2.0.0.*