On 27 February 2011 21:01, Stevo Slavić <[email protected]> wrote: > snapshotRepository element is available only in distributionManagement > (see maven pom XSD here http://maven.apache.org/xsd/maven-4.0.0.xsd ) > and in it you define destination repository where snapshots of your > project should be released - it has nothing to do with resolving > dependencies tho. For snapshot dependencies including parent pom > references to be resolved you need to define a dependency repository > with snapshots enabled. E.g. [1] worked for me with maven 3.0.2 and > I'm pretty sure you won't have problems resolving dependencies (parent > or regular) with this configuration with maven 2.2.1 either.
Thanks - yes, I did get the download/upload repository definitions mixed up, and your fix does work with M2.2.1. I see now what the problem is. The commons-parent pom depends on the Apache pom, which is where the Apache snapshot repo is defined. For non-snapshot commons-parent versions, Maven itself provides the repo definition, so the Apache pom is not needed, and Maven can download an updated version of commons-parent. But for snapshots, Maven does not know how to find snapshot repo which contains commons-parent, so cannot find the pom. One way to resolve this would be to add the snapsot repo (download) definition to the local settings.xml. This would then allow Maven to download without needing the Apache pom. I've tried, and that works. Thanks for helping solve the issue. > Regards, > Stevo. > > > [1] pom.xml with apache.snapshots dependency repository defined > > <project xmlns="http://maven.apache.org/POM/4.0.0" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 > http://maven.apache.org/xsd/maven-4.0.0.xsd"> > <modelVersion>4.0.0</modelVersion> > <parent> > <groupId>org.apache.commons</groupId> > <artifactId>commons-parent</artifactId> > <version>19-SNAPSHOT</version> > </parent> > <groupId>foo</groupId> > <artifactId>bar</artifactId> > <version>0.0.1-SNAPSHOT</version> > <repositories> > <repository> > <id>apache.snapshots.https</id> > <name>Apache Development Snapshot Repository</name> > <url>https://repository.apache.org/content/repositories/snapshots</url> > <snapshots> > <enabled>true</enabled> > <updatePolicy>always</updatePolicy> > </snapshots> > </repository> > </repositories> > </project> > > > On Sun, Feb 27, 2011 at 3:47 PM, sebb <[email protected]> wrote: >> On 27 February 2011 13:41, Stevo Slavić <[email protected]> wrote: >>> I doubt it is intentional behavior. You didn't mention which version >>> of maven are you using, or maven-dependency-plugin - like with any OSS >>> project, latest maven is the greatest, and configure plugin version in >>> pluginManagement section. You also didn't provide snapshots repository >>> definition snippet - maybe you're affected by default daily >>> updatePolicy for snapshots; configure "always" or use -U switch when >>> building. >> >> I'm using Maven 2.2.1 >> dependency plugin 2.0 >> >> Not sure how I can update the plugin version (there is a 2.2), as it >> appears that Maven tries to process the parent before it processes the >> pluginManagement section. >> >> <snapshotRepository> >> <id>apache.snapshots.https</id> >> <name>Apache Development Snapshot Repository</name> >> <url>https://repository.apache.org/content/repositories/snapshots</url> >> </snapshotRepository> >> >> I don't think the update policy is relevant, otherwise why would a >> plain dependency work? >> Anyway, I have just tried -U and that did not help >> >> Here is the parent.xml file in case you want to try for yourself: >> >> <project xmlns="http://maven.apache.org/POM/4.0.0" >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 >> http://maven.apache.org/maven-v4_0_0.xsd"> >> <modelVersion>4.0.0</modelVersion> >> <parent> >> <groupId>org.apache.commons</groupId> >> <artifactId>commons-parent</artifactId> >> <version>19-SNAPSHOT</version> >> </parent> >> >> <groupId>org.home.mvnsample</groupId> >> <artifactId>mvnsample</artifactId> >> <packaging>jar</packaging> >> <version>1.0-SNAPSHOT</version> >> <name>mvnsample</name> >> <url>http://maven.apache.org</url> >> </project> >> >>> Regards, >>> Stevo. >>> >>> On Sun, Feb 27, 2011 at 2:44 AM, sebb <[email protected]> wrote: >>>> I uploaded commons-parent POM 19-SNAPSHOT to the snapshot repo [1], >>>> and then deleted it from my local repo (because I want to test how it >>>> will work for others). >>>> >>>> When I try to depend on it as a parent, i.e. >>>> >>>> <parent> >>>> <groupId>org.apache.commons</groupId> >>>> <artifactId>commons-parent</artifactId> >>>> <version>19-SNAPSHOT</version> >>>> </parent> >>>> >>>> I get the following error: >>>> >>>> [INFO] Scanning for projects... >>>> [INFO] >>>> ------------------------------------------------------------------------ >>>> [ERROR] FATAL ERROR >>>> [INFO] >>>> ------------------------------------------------------------------------ >>>> [INFO] Error building POM (may not be this project's POM). >>>> >>>> Project ID: org.home.mvnsample:mvnsample:jar:1.0-SNAPSHOT >>>> >>>> Reason: Cannot find parent: org.apache.commons:commons-parent for >>>> project: org.home.mvnsample:mvnsample:jar:1.0-SNAPSHOT for project >>>> org.home.mvnsample:mvnsample:jar:1.0- >>>> SNAPSHOT >>>> >>>> Yet when the POM depends on it as a dependency, i.e. >>>> >>>> <dependency> >>>> <groupId>org.apache.commons</groupId> >>>> <artifactId>commons-parent</artifactId> >>>> <version>19-SNAPSHOT</version> >>>> <type>pom</type> >>>> </dependency> >>>> >>>> it is downloaded without a problem. >>>> >>>> It looks as though Maven does not check snapshot repositories for a >>>> parent POM dependency. >>>> Is this true, and if so is it intentional? >>>> >>>> [1] >>>> http://repository.apache.org/snapshots/org/apache/commons/commons-parent/19-SNAPSHOT/ >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: [email protected] >>>> For additional commands, e-mail: [email protected] >>>> >>>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [email protected] >>> For additional commands, e-mail: [email protected] >>> >>> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
