Hello Stephan, hope I have understood your question...
On 11/04/2017 11:26, Stephan Herrmann wrote:
In particular: if someone references a repo with
<snapshots><enabled>false</enabled></snapshots>
how exactly must a snapshot be marked in order to remain invisible?
if you set the repository as false it won't be considered by maven in
order to looking for remote artfacts/bundles. but maven can still use
already downloaded ones.
Consider a company repository manager standing between you and
the outside, i.e., you can't directly turn on/off your connection
to OSSRH snapshots, but need to excluded snapshots in a given build.
if you have Nexus OSS
free(https://www.sonatype.com/download-oss-sonatype), you can start and
stop a snapshot that is exposed to the world or internal network.
and if we use thirty-part snapshot repo or p2 bundles, what I normally
used to do at dev time (briefly) are:
* Download the bundles from the http links provided by Eclipse and
create a local maven repository and point nexus to it (the most
boring part);
* create a new branch in our releng project in git where I will change
the FPOM ( a fragment POM with only dependencyManagement and version
that I want to work). Normally I declare every dependency, including
transitive ones. Then I install those fpom in maven snapshot repo;
* create a branch for consumer projects and change every multi-project
root pom that imports fpom to use the snapshot and consequently all
hierarchy below it will have the right versions ( I use versions
plugin for that):
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.c8tech.releng.maven</groupId>
<artifactId>com.c8tech-maven-fpom-node-equinox</artifactId>
<version>${com.c8tech.releng.version}</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
* Also in the releng project I do change the settings.xml that is
being used by Jenkins and local machines. There, I include and
enable the snapshot repositories and disable the release ones. Note
that I also set the updatePolicy to never, just to avoid download
newer version and to pollute my local repo, but that can be bypassed
by using -U option:
<profiles>
<profile>
...
<repositories>
<repository>
<id>C8TechSnapshots</id>
<name>C8Tech Snapshots</name>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
<url>http://192.168.19.2/maven2/snapshots</url>
<layout>default</layout>
</repository>
</repositories>
* At Jenkins, I can create different jobs for each development branch
combination;
* After release I can clean or delete the snapshot repositories that I
have created.
Using jenkins is easier because you can set a clean local repository for
each job while at local machine, sometimes, you need to delete some
downloaded resources in order to avoid the issues related to semantic
versions that you have referred.
best regards,
Cristiano
In that repo I see artifacts like this:
https://oss.sonatype.org/content/repositories/snapshots/org/eclipse/tycho/org.eclipse.jdt.core/3.10.0.v20140528-1959-SNAPSHOT/org.eclipse.jdt.core-3.10.0.v20140528-1959-20140625.081446-8.jar
which exhibits two variants of the version: directory mentions SNAPSHOT,
artifact expands that to a time stamp. Is this artifact enabled/disabled
by the <snapshots> element? If so, then this could help avoid the problem
I mentioned in my first mail.
The first variation that you see is the directory. inside that directory
you can have one or more different timestamped versions. what defines
which one is the latest is the
https://oss.sonatype.org/content/repositories/snapshots/org/eclipse/tycho/org.eclipse.jdt.core/3.10.0.v20140528-1959-SNAPSHOT/maven-metadata.xml
file.
_______________________________________________
equinox-dev mailing list
[email protected]
To change your delivery options, retrieve your password, or unsubscribe from
this list, visit
https://dev.eclipse.org/mailman/listinfo/equinox-dev