maven-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From stephenc <...@git.apache.org>
Subject [GitHub] maven issue #69: MNG-5899 Reactor should use reduced dependency pom
Date Sun, 30 Apr 2017 19:03:50 GMT
Github user stephenc commented on the issue:

    https://github.com/apache/maven/pull/69
  
    > If the shaded artifact is built as a submodule with a different artifact
    > ID, then the shade plugin can specify its DRP as its main POM. It lets
    > other projects depend on the shaded artifact with only its remaining
    > (unshaded) dependencies.
    
    There are issues with that:
    
    1. There can be issues with a clean build with an empty repository for some reactors (because
there is no information to let maven know the shadedArtifactId will be produced by artifactId
so in some cases Maven will fail the build early because it "knows" there is no such artifact.
Typically this happens in larger reactors where the build sequence can be more "unpredictable"
and Maven decides that there is a "short-cut"
    
    2. There can be issues with a build from a non-empty repository, especially when using
`-rf`, as you can end up using the `-SNAPSHOT` from a previous execution (which may retain
bugs).
    
    My original proposal for a solution was to allow a plugin to advertise dependency reduction
of a pom (or additional GAV production). 
    
    For dependency reduction, Maven would enforce specific rules such as "no new dependencies"
and the build plan would be unmodified. 
    
    For additional GAV production, there would have to be strict rules on the new GAV (such
as being evaluated based entirely on properties available to general project GAV computation
- i.e. nothing injected into the build by another plugin) and similar rules on the new GAV
pom (i.e. only ever a subset of the GAV it is being generated from)
    
    That would allow us to create the build plan reflecting the potential behaviours of the
shade plugin (as well as the flatten plugin) before any plugin executions but allow plugins
to do what is necessary... but my suggestion was shot down last time


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

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


Mime
View raw message