maven-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Malte Skoruppa <skoru...@cs.uni-saarland.de>
Subject Cannot find parent POM... but it's there!
Date Fri, 29 Nov 2013 13:17:22 GMT
Hey guys,

I want to build a project that I downloaded 
(https://sourcecode.valg.no/websvn/listing.php?repname=Internettstemmegivning) 
and that is supposed to work fine.

Yet I cannot build even the first module, because Maven tells me it 
cannot find the parent POM. The parent POM is there in the local repo, 
at the correct location, yet somehow Maven refuses to see it and tries 
to fetch it remotely, which clearly will not work. This parent POM is a 
general POM of packaging type "pom" that defines some plugin versions to 
be used etc.

Put simply:
* I extracted the m2repository.tar (from the above URL) to 
/home/malte/.repository
* I extracted the module "cryptography-2.0.0" from code.tar (from the 
above URL) to /home/malte/cryptography-2.0.0

Now, in /home/malte/cryptography-2.0.0/pom.xml there is the section:

     <parent>
             <groupId>com.scytl</groupId>
             <artifactId>maven-generic-conf</artifactId>
             <version>1.1.39</version>
     </parent>

The corresponding parent POM *does exist* in the local repo:
$ ls 
~/.repository/com/scytl/maven-generic-conf/1.1.39/maven-generic-conf-1.1.39.pom
/home/malte/.repository/com/scytl/maven-generic-conf/1.1.39/maven-generic-conf-1.1.39.pom
$

Yet when I try to validate the module cryptography-2.0.0:

[~/cryptography-2.0.0] $ mvn validate -X -U 
-Dmaven.repo.local=/home/malte/.repository
Apache Maven 3.0.4
...snip...
[INFO] Error stacktraces are turned on.
[DEBUG] Reading global settings from /usr/share/maven/conf/settings.xml
[DEBUG] Reading user settings from /home/malte/.m2/settings.xml
[DEBUG] Using local repository at /home/malte/.repository
[DEBUG] Using manager EnhancedLocalRepositoryManager with priority 10 
for /home/malte/.repository
[INFO] Scanning for projects...
[DEBUG] Verifying availability of 
/home/malte/.repository/com/scytl/maven-generic-conf/1.1.39/maven-generic-conf-1.1.39.pom

from [central (http://repo.maven.apache.org/maven2, releases)]
[DEBUG] Using connector WagonRepositoryConnector with priority 0 for 
http://repo.maven.apache.org/maven2
Downloading: 
http://repo.maven.apache.org/maven2/com/scytl/maven-generic-conf/1.1.39/maven-generic-conf-1.1.39.pom
[DEBUG] Writing resolution tracking file 
/home/malte/.repository/com/scytl/maven-generic-conf/1.1.39/maven-generic-conf-1.1.39.pom.lastUpdated
[ERROR] The build could not read 1 project -> [Help 1]
org.apache.maven.project.ProjectBuildingException: Some problems were 
encountered while processing the POMs:
[FATAL] Non-resolvable parent POM: Could not find artifact 
com.scytl:maven-generic-conf:pom:1.1.39 in central 
(http://repo.maven.apache.org/maven2) and 'parent.relativePath' points 
at wrong local POM @ line 3, column 13

         at 
org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:363)
...snip...
[ERROR]   The project com.scytl.jbasis:cryptography:2.0.0 
(/home/malte/cryptography-2.0.0/pom.xml) has 1 error
[ERROR]     Non-resolvable parent POM: Could not find artifact 
com.scytl:maven-generic-conf:pom:1.1.39 in central 
(http://repo.maven.apache.org/maven2) and 'parent.relativePath' points 
at wrong local POM @ line 3, column 13 -> [Help 2]
org.apache.maven.model.resolution.UnresolvableModelException: Could not 
find artifact com.scytl:maven-generic-conf:pom:1.1.39 in central 
(http://repo.maven.apache.org/maven2)
...snip...
Caused by: org.sonatype.aether.transfer.ArtifactNotFoundException: Could 
not find artifact com.scytl:maven-generic-conf:pom:1.1.39 in central 
(http://repo.maven.apache.org/maven2)
...snip...
[ERROR] [Help 1] 
http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException
[ERROR] [Help 2] 
http://cwiki.apache.org/confluence/display/MAVEN/UnresolvableModelException

As you can see Maven tries to fetch 
com.scytl:maven-generic-conf:pom:1.1.39 from central, which clearly does 
not work.

What bugs me in particular is this line:
[DEBUG] Verifying availability of 
/home/malte/.repository/com/scytl/maven-generic-conf/1.1.39/maven-generic-conf-1.1.39.pom

from [central (http://repo.maven.apache.org/maven2, releases)]

Why? WHY? I mean, the file 
/home/malte/.repository/com/scytl/maven-generic-conf/1.1.39/maven-generic-conf-1.1.39.pom

is THERE. It's fine. Why does Maven want to download it from central 
repo? Why won't it just read it?

Also, if I actually put maven-generic-conf-1.1.39.pom in the parent 
directory and rename it to pom.xml, the build works fine:

[~] $ mkdir maven-generic-conf
[~] $ cp 
~/.repository/com/scytl/maven-generic-conf/1.1.39/maven-generic-conf-1.1.39.pom 
maven-generic-conf/pom.xml
[~] $ cp -r cryptography-2.0.0/ maven-generic-conf/
[~] $ cd maven-generic-conf/cryptography-2.0.0/
[~/maven-generic-conf/cryptography-2.0.0] $ mvn validate -X -U 
-Dmaven.repo.local=/home/malte/.repository
...snip...
[INFO] 
------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] 
------------------------------------------------------------------------
[INFO] Total time: 3.173s
[INFO] Finished at: Fri Nov 29 13:46:21 CET 2013
[INFO] Final Memory: 9M/211M
[INFO] 
------------------------------------------------------------------------

While this is a workaround, it is not a solution. The project is quite 
large and complex, and I cannot just rebuild the entire project 
structure. (There are more very similar problems.) Also, different 
version of maven-generic-conf are used by different modules, etc.

Yes, I did visit both URLs at [Help 1] and [Help 2], and read them 
carefully. It is true that a <relativePath> is not set in the child 
module (i.e., cryptography-2.0.0), but in an entirely different project 
of mine the <relativePath> is not set either and its parent POM is also 
only in the local repo, yet that one validates fine. Also as can be seen 
from the [DEBUG] line stated above, Maven does know the correct location 
of the parent POM, apparently it just doesn't read it.
I googled for similar problems. But I could not find a solution.

I also tried to use the -o switch to make the build offline and force 
Maven to not download anything. But the error I get then is quite similar:
[FATAL] Non-resolvable parent POM: The repository system is offline but 
the artifact com.scytl:maven-generic-conf:pom:1.1.39 is not available in 
the local repository. and 'parent.relativePath' points at wrong local 
POM @ line 3, column 13

Does anyone have an idea of what may be going on here? Any help would be 
GREATLY appreciated. I'm out of ideas here. It may be something very 
simple, and I just miss experience with Maven :)

Many thanks,

Malte


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Mime
View raw message