mirror of https://github.com/apache/maven.git
[MNG-8299] Fix ordering of phases from custom lifecycles (#1802)
--- https://issues.apache.org/jira/browse/MNG-8299
This commit is contained in:
parent
eafb2fb8b1
commit
4e5c89c403
|
@ -204,42 +204,71 @@ public class DefaultLifecycleRegistry implements LifecycleRegistry {
|
|||
|
||||
@Override
|
||||
public Collection<Phase> phases() {
|
||||
return lifecycle.getPhases().stream()
|
||||
.map(name -> (Phase) new Phase() {
|
||||
@Override
|
||||
public String name() {
|
||||
return name;
|
||||
}
|
||||
List<String> names = lifecycle.getPhases();
|
||||
List<Phase> phases = new ArrayList<>();
|
||||
for (int i = 0; i < names.size(); i++) {
|
||||
String name = names.get(i);
|
||||
String prev = i > 0 ? names.get(i - 1) : null;
|
||||
phases.add(new Phase() {
|
||||
@Override
|
||||
public String name() {
|
||||
return name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Phase> phases() {
|
||||
@Override
|
||||
public List<Phase> phases() {
|
||||
return List.of();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Stream<Phase> allPhases() {
|
||||
return Stream.concat(
|
||||
Stream.of(this), phases().stream().flatMap(Lifecycle.Phase::allPhases));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Plugin> plugins() {
|
||||
Map<String, LifecyclePhase> lfPhases = lifecycle.getDefaultLifecyclePhases();
|
||||
LifecyclePhase phase = lfPhases != null ? lfPhases.get(name) : null;
|
||||
if (phase != null) {
|
||||
Map<String, Plugin> plugins = new LinkedHashMap<>();
|
||||
DefaultPackagingRegistry.parseLifecyclePhaseDefinitions(plugins, name, phase);
|
||||
return plugins.values().stream().toList();
|
||||
}
|
||||
return List.of();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Link> links() {
|
||||
if (prev == null) {
|
||||
return List.of();
|
||||
}
|
||||
} else {
|
||||
return List.of(new Link() {
|
||||
@Override
|
||||
public Kind kind() {
|
||||
return Kind.AFTER;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Stream<Phase> allPhases() {
|
||||
return Stream.concat(
|
||||
Stream.of(this), phases().stream().flatMap(Lifecycle.Phase::allPhases));
|
||||
}
|
||||
@Override
|
||||
public Pointer pointer() {
|
||||
return new Pointer() {
|
||||
@Override
|
||||
public String phase() {
|
||||
return prev;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Plugin> plugins() {
|
||||
Map<String, LifecyclePhase> lfPhases = lifecycle.getDefaultLifecyclePhases();
|
||||
LifecyclePhase phase = lfPhases != null ? lfPhases.get(name) : null;
|
||||
if (phase != null) {
|
||||
Map<String, Plugin> plugins = new LinkedHashMap<>();
|
||||
DefaultPackagingRegistry.parseLifecyclePhaseDefinitions(plugins, name, phase);
|
||||
return plugins.values().stream().toList();
|
||||
}
|
||||
return List.of();
|
||||
@Override
|
||||
public Type type() {
|
||||
return Type.PROJECT;
|
||||
}
|
||||
};
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Link> links() {
|
||||
return List.of();
|
||||
}
|
||||
})
|
||||
.toList();
|
||||
}
|
||||
});
|
||||
}
|
||||
return phases;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Reference in New Issue