After some more investigation things get a litter clearer, and little more odd.

When I run the compile goal (mvn compile) with the unchange code (ie after a checkout) it run compiler:compile and compiler:testCompile.

When I run the compile phase (mvn compile) after removing the parent pom reference then it only run compiler:compile. This compile completes successfully. That is, it is able to satisfy its dependencies by using the code of the other just-compiled modules.

The initial compile fails because the during the compile it doesn't make use of the previously compile test modules, but it does for the main source.

So there are two questions: 1) why does the compile goal in first instance cause the the compiles, while the in the second only one is performed (both should cause both compiles to occur); and 2) during the compiling of all the code is Maven able to resolve the dependencies of the main code but not of the test code.

I think I will post to the Maven mailing list as see if they have an answer.

Now that I understand what is happening, I can continue to look at the problems I wanted to look at originally, such a basic failure, that of the code not compiling, left me a little concerned.

Regards
Rob


On 19/10/10 23:26, Mark Struberg wrote:
you need to run

$>  mvn clean install

otherwise your artifacts wont get installed to your local repo in 
~/.m2/repository/...

LieGrue,
strub

--- On Tue, 10/19/10, Benson Margulies<[email protected]>  wrote:

From: Benson Margulies<[email protected]>
Subject: Re: Snapshots
To: [email protected], [email protected]
Date: Tuesday, October 19, 2010, 9:34 PM
~~~
Actually, I think I've just noticed your problem: mvn
compile isn't
sufficient, is it?  You need to do a full mvn install
to get the preceeding
modules into the local repo, otherwise subsequent
dependent modules won't
find them.  I've just confirmed this.
I was just reading the contrary on the maven-users list.
Things in the
reactor should work even if not installed.



Dan

PS: I don't think this is related, but I *did* hit an
issue of my own in the
pom.xml of the nosql object store, either the
maven-assembly-plugin or
maven-antrun-plugin was causing the build to trip up
and seemingly restart
in the incorrect place.  No idea why, so have
commented out.   I guess at
some point it'll need looking at more closely, but
since this module is
still in dev, I figured I wasn't breaking anything
that was formally
released yet.


~~~~~~~~~~~
On 19/10/2010 00:47, Robert Matthews wrote:
I've hit a similar issue to Kevin.  Starting with
a clean repo (rm -r
.m2/repository/org/isis) I am struggling to build
a freshly checked out copy
of the code.  Running mvn compile on the trunk
fails in the metamodel
project complaining about a missing library (which
is defined a few modules
earlier) - see below.

If I comment out the parent in the trunk's pom.xml
everything is fine.
  The same happens when running eclipse:eclipse.
  The effective pom now
shows:

<repositories>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>Maven Repository
Switchboard</name>
<url>http://repo1.maven.org/maven2</url>
</repository>
</repositories>

The odd thing is that with the parent commented
back in the effective pom
is:

<repositories>
<repository>
<releases>
<enabled>false</enabled>
</releases>
<id>apache.snapshots</id>
<name>Apache Snapshot
Repository</name>
<url>http://repository.apache.org/snapshots</url>
</repository>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>Maven Repository
Switchboard</name>
<url>http://repo1.maven.org/maven2</url>
</repository>
</repositories>

which makes no sense to me, suggesting that
snapshots are not enabled.
I tried the suggestion made in this posting
http://maven.markmail.org/message/us7cac3hz33ru2xw?q=snapshot+type:users+list:org%2Eapache%2Emaven%2Eusers&page=1,
but it did not change my effective pom.  Maybe
you can try this Kevin to see
if works for you.

I shall try some other things tomorrow, but if
  anybody has any ideas in
the meantime I'd be happy to hear them.

Rob


--------------------------------------------------------



[INFO]

------------------------------------------------------------------------
[INFO] Building Core MetaModel
[INFO]    task-segment: [compile]
[INFO]

------------------------------------------------------------------------
[INFO] [remote-resources:process {execution:
default}]
Downloading:
http://repository.apache.org/snapshots/org/apache/isis/core/commons/0.1-SNAPSHOT/commons-0.1-SNAPSHOT-tests.jar
Downloading:
http://repository.apache.org/snapshots/org/apache/isis/applib/0.1-SNAPSHOT/applib-0.1-SNAPSHOT-tests.jar
[INFO] Unable to find resource

'org.apache.isis:applib:test-jar:tests:0.1-SNAPSHOT' in
repository
apache.snapshots (http://repository.apache.org/snapshots)
[INFO] Unable to find resource

'org.apache.isis.core:commons:test-jar:tests:0.1-SNAPSHOT'
in repository
apache.snapshots (http://repository.apache.org/snapshots)
[INFO]

------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO]

------------------------------------------------------------------------
[INFO] Failed to resolve dependencies for one or
more projects in the
reactor. Reason: Missing:
----------
1)
org.apache.isis:applib:test-jar:tests:0.1-SNAPSHOT
  Try downloading the file manually from the
project website.
  Then, install it using the command:
      mvn install:install-file
-DgroupId=org.apache.isis
-DartifactId=applib -Dversion=0.1-SNAPSHOT
-Dclassifier=tests
-Dpackaging=test-jar -Dfile=/path/to/file

  Alternatively, if you host your own repository
you can deploy the file
there:
      mvn deploy:deploy-file
-DgroupId=org.apache.isis -DartifactId=applib
-Dversion=0.1-SNAPSHOT -Dclassifier=tests
-Dpackaging=test-jar
-Dfile=/path/to/file -Durl=[url]
-DrepositoryId=[id]
  Path to dependency:
      1)
org.apache.isis.core:metamodel:jar:0.1-SNAPSHOT
      2)
org.apache.isis:applib:test-jar:tests:0.1-SNAPSHOT
2)
org.apache.isis.core:commons:test-jar:tests:0.1-SNAPSHOT
  Try downloading the file manually from the
project website.
  Then, install it using the command:
      mvn install:install-file
-DgroupId=org.apache.isis.core
-DartifactId=commons -Dversion=0.1-SNAPSHOT
-Dclassifier=tests
-Dpackaging=test-jar -Dfile=/path/to/file

  Alternatively, if you host your own repository
you can deploy the file
there:
      mvn deploy:deploy-file
-DgroupId=org.apache.isis.core
-DartifactId=commons -Dversion=0.1-SNAPSHOT
-Dclassifier=tests
-Dpackaging=test-jar -Dfile=/path/to/file
-Durl=[url] -DrepositoryId=[id]
  Path to dependency:
      1)
org.apache.isis.core:metamodel:jar:0.1-SNAPSHOT
      2)
org.apache.isis.core:commons:test-jar:tests:0.1-SNAPSHOT
----------
2 required artifacts are missing.

for artifact:
  org.apache.isis.core:metamodel:jar:0.1-SNAPSHOT

from the specified remote repositories:
  apache.snapshots (http://repository.apache.org/snapshots),
  central (http://repo1.maven.org/maven2)







Reply via email to