apache / apache/maven

[MNG-683] Lifecycle mappings should specify phase bindings in terms of general functionality type

Open
#2,581 4 comments 0 reactions 0 assignees View on GitHub
enhancement priority:major
Dominant language
Java
Stars
5.3k
Forks
3.1k
Avg merge
20h 42m
Merged PRs (30d)
297

Description

**[John Dennis Casey](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=jdcasey)** opened **[MNG-683](https://issues.apache.org/jira/browse/MNG-683?redirect=false)** and commented

Currently, the 'jar' lifecycle mapping specifies that the 'compiler:complie' mojo will be bound to the 'compile' phase. The 'compiler' prefix is mapped concretely to the maven-compiler-plugin. This means that it's not currently possible to use a different mojo to compile jar projects.

How can a third party implementor touch this lifecycle phase for jars without implementing a new plexus-compiler implementation, and even then, how is the new compiler impl supposed to be added to the plugin container?

---

**Affects:** 2.0-alpha-3

**Issue Links:**
- [MNG-2806](https://issues.apache.org/jira/browse/MNG-2806) Provide a means of replacing one mojo binding with another, without knowing the location of the first binding in the lifecycle
(_**"depends upon"**_)

**Remote Links:**
- [Page
](https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=65875544)

Contributor guide

Open the contributing guide

Research direction

Start by reading the jar lifecycle mapping and the linked MNG-2806 issue, then trace how the compiler prefix is resolved to the maven-compiler-plugin. The goal is to determine how lifecycle bindings can use a general functionality type and allow a different compile mojo without requiring a new plexus-compiler implementation.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
build-system
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.