Disclaimer: I don't know Gentoo. On Mon, Mar 20, 2017 at 4:19 PM Curtis Rueden <ctrue...@wisc.edu> wrote:
> > The main question I have is about Maven plugins: since Maven builds do some > bootstrapping, but Gentoo builds are not supposed to download things from > the network, it means we might need a pre-baked Maven local repository > containing all commonly used plugins at various release versions? If so, > that would be unfortunate. I was hoping for some insight from others here. > Well, either the POM declares explicit versions, or those from the super-pom are used (if declared there; and those versions then depend on the version of Maven itself), or a warning is issued and IIRC Maven will use the LATEST version. So AFAICT you could know exactly what Maven plugins are needed (modify the POMs to specify a version if fall into the 2 former cases above), and package them similarly to the other dependencies. There would still be problems with: * plugins that will fetch dependencies as needed. Surefire is one of them, dynamically fetching the appropriate "provider" depending on which testing framework is used in the build (JUnit 3, JUnit 4, JUnit 4.7+, TestNG); also the maven-compiler-plugin when using <annotationProcessorPaths>, and probably many others, not necessarily "exotic" plugins. Those would have to be "discovered" by building the project first and then adapting the Gentoo build to add the appropriate dependencies (what I mean here is that those dependencies can't be extracted automatically from the POMs, at least without knowing the specifics of each plugin) * plugins that access the network during the build * plugins that don't lead to reproducible builds