Maven 1

DependencyVerifier class doesn't resolve an snapshot artifact after attaining a first goal.

Details

  • Type: Bug Bug
  • Status: Open Open
  • Priority: Minor Minor
  • Resolution: Unresolved
  • Affects Version/s: 1.1-beta-1
  • Fix Version/s: None
  • Component/s: core
  • Labels:
    None
  • Number of attachments :
    0

Description

Since revision 179556 of src/java/org/apache/maven/verifier/DependencyVerifier.java, the satisfyDependencies() method check if an artifact has already been resolved. It changes the behavior from version 1.0.

For example, if you call maven with goals multiproject:clean and multiproject:deploy with artifact versions set to snaphot, maven doesn't resolve the dependencies for the multiproject:deploy because it has been already done for the multiproject:clean.

I know that a multiproject:clean should not resolve the project dependencies but it can probably cause problems in other cases.

Activity

Hide
Brett Porter added a comment -

why is this a problem? deploy should install first, so the local copy is up to date.

Show
Brett Porter added a comment - why is this a problem? deploy should install first, so the local copy is up to date.
Hide
Pascal Larin added a comment -

Bret,

I've done some tests. I've started a snapshot build with targets multiproject:clean multiproject:deploy. I let the clean do his job. I stop my build right after the end of the build of my first project, at build:end.

Before starting my build, in my local repo, I have:
303451 Aug 19 10:36 infra-core-dev-SNAPSHOT.jar

After stopping my build,
my target directory: 303451 Aug 19 11:03 infra-core-dev-SNAPSHOT.jar
remote repo: 303451 Aug 19 11:03 infra-core-dev-SNAPSHOT.jar
local repo: 303451 Aug 19 10:36 infra-core-dev-SNAPSHOT.jar

I'll check to see why my artifact is not installed in my local repo.

Show
Pascal Larin added a comment - Bret, I've done some tests. I've started a snapshot build with targets multiproject:clean multiproject:deploy. I let the clean do his job. I stop my build right after the end of the build of my first project, at build:end. Before starting my build, in my local repo, I have: 303451 Aug 19 10:36 infra-core-dev-SNAPSHOT.jar After stopping my build, my target directory: 303451 Aug 19 11:03 infra-core-dev-SNAPSHOT.jar remote repo: 303451 Aug 19 11:03 infra-core-dev-SNAPSHOT.jar local repo: 303451 Aug 19 10:36 infra-core-dev-SNAPSHOT.jar I'll check to see why my artifact is not installed in my local repo.
Hide
Brett Porter added a comment -

my mistake, :deploy doesn't install.

You should be able to run :clean :install :deploy in sequence to get what you want.

Show
Brett Porter added a comment - my mistake, :deploy doesn't install. You should be able to run :clean :install :deploy in sequence to get what you want.
Hide
Pascal Larin added a comment -

Hum...

In our case, it won't work. We have around 50 subprojects, each project is set to snapshot. It happens sometime that a subproject needs changes from a component previously build in the same multiproject:deploy. I've made patch to always resolve a dependency if it is a snapshot version.

One thing is sure, Maven 1.1 behave differently than 1.0 with this revision (179556).

Pascal

Show
Pascal Larin added a comment - Hum... In our case, it won't work. We have around 50 subprojects, each project is set to snapshot. It happens sometime that a subproject needs changes from a component previously build in the same multiproject:deploy. I've made patch to always resolve a dependency if it is a snapshot version. One thing is sure, Maven 1.1 behave differently than 1.0 with this revision (179556). Pascal
Hide
Arnaud Heritier added a comment -

I'll have a look at it for the RC1

Show
Arnaud Heritier added a comment - I'll have a look at it for the RC1

People

Vote (0)
Watch (0)

Dates

  • Created:
    Updated: