Re: versioning by hashes to speedup multi-module build (a'la nix package manager)

2020-07-21 Thread Anton Vodonosov
After learning from gitflow-incremental-builder how to remove modules from mavenSession if we want to skip them I implemented a 'version as a hash of sources and dependency tree" solution: https://github.com/avodonosov/hashver-maven-plugin It relies on using property expressions as versions. A

Re: versioning by hashes to speedup multi-module build (a'la nix package manager)

2020-02-04 Thread Jason Young
Good questions. First of all, this plugin is CI-agnostic, but it does require the project to exist in a `git` repository, whether that is in CI or on your machine. Check the github page I linked to for more instructions on how it determines what projects in a reactor are considered "changed" and

Re: versioning by hashes to speedup multi-module build (a'la nix package manager)

2020-02-04 Thread Anton Vodonosov
04.02.2020, 23:32, "Jason Young" : > > Not what you're looking for, but maybe useful: We use one plugin that will > skip whole projects that have not changed WRT a given Git branch: > https://github.com/vackosar/gitflow-incremental-builder. With careful > configuration, this is an effective

Re: versioning by hashes to speedup multi-module build (a'la nix package manager)

2020-02-04 Thread Jason Young
It seems Maven itself never omits re-doing anything except for downloading artifacts from a remote repository. The command you give to Maven and the configuration of your projects dictates what it will do, no matter what happened in the previous build. You _can_ omit projects in a multi-module

Re: versioning by hashes to speedup multi-module build (a'la nix package manager)

2020-02-04 Thread Anton Vodonosov
Ha, only after completing the script (even though a slow one) I discovered that maven rebuilds modules even if an artifact of the same version already exists in artifact repository. I hoped maven, in case a non -SNAPSHOT artifact found in an artifact repository will just use it and won't build

Re: versioning by hashes to speedup multi-module build (a'la nix package manager)

2020-02-03 Thread Anton Vodonosov
Thomas Broyer, Enrico Olivelli, I consider the whole directory where the module's pom.xml resides, excluding the target/ dir, as the input, and the final module artifacts as the output. Even if some plugins allow sources outside the pom.xml's directory (out of curiosity, is it possible?), it is

Re: versioning by hashes to speedup multi-module build (a'la nix package manager)

2020-02-02 Thread Anton Vodonosov
03.02.2020, 00:15, "Enrico Olivelli" : > (Apologises for top posting ) > > This thread is about a bunch of requested features (cache and parallel > executions of mojos) that we have been discussing on dev@ mailing list. > As said in this thread the first show stopper for Maven is that we do not

Re: versioning by hashes to speedup multi-module build (a'la nix package manager)

2020-02-02 Thread Enrico Olivelli
(Apologises for top posting ) This thread is about a bunch of requested features (cache and parallel executions of mojos) that we have been discussing on dev@ mailing list. As said in this thread the first show stopper for Maven is that we do not have a clear definition of input and outputs for

Re: versioning by hashes to speedup multi-module build (a'la nix package manager)

2020-02-02 Thread Thomas Broyer
Le dim. 2 févr. 2020 à 17:48, Anton Vodonosov a écrit : > Hello. > > In order to speed up the build of a multi-module project, I'd like to > reuse artifacts of modules that haven't changed. > Manual versioning is tedious and error-prone. > > Is it possible to automatically assign versions to

Re: versioning by hashes to speedup multi-module build (a'la nix package manager)

2020-02-02 Thread Tommy Svensson
t Regards, Tommy Från: Anton Vodonosov Svara: Maven Users List Datum: 2 februari 2020 at 16:10:44 Till: Maven Users List , i...@soebes.de Cc: Konrad Windszus Ämne:  Re: versioning by hashes to speedup multi-module build (a'la nix package manager) I want, for unchanged parts of the project,

versioning by hashes to speedup multi-module build (a'la nix package manager)

2020-02-02 Thread Anton Vodonosov
Hello. In order to speed up the build of a multi-module project, I'd like to reuse artifacts of modules that haven't changed. Manual versioning is tedious and error-prone. Is it possible to automatically assign versions to modules computed as a hash-of( hash-of(module sources) + hashes of all

Re: versioning by hashes to speedup multi-module build (a'la nix package manager)

2020-02-02 Thread Anton Vodonosov
I want, for unchanged parts of the project, to reuse artifacts produced by previous builds, and only rebuild the changed parts. Imagine a project with hundreds of modules stored in a single git repository, whose full build with tests takes 3 hours. A developer creates a ticket branch, changes

Re: versioning by hashes to speedup multi-module build (a'la nix package manager)

2020-02-02 Thread Karl Heinz Marbaise
Hi, On 01.02.20 16:08, Anton Vodonosov wrote: Hello. In order to speed up the build of a big multi-module project, I'd like to reuse the artifacts of modules that haven't changed. Manual versioning is tedious and error-prone. Can you explain more in detail what you exactly mean and what kind

Re: versioning by hashes to speedup multi-module build (a'la nix package manager)

2020-02-01 Thread Konrad Windszus
Hi, just look at http://maven.apache.org/maven-ci-friendly.html. Konrad > Am 01.02.2020 um 16:08 schrieb Anton Vodonosov : > > Hello. > > In order to speed up the build of a big multi-module project, > I'd like to reuse the artifacts of modules that haven't changed. > Manual versioning is

versioning by hashes to speedup multi-module build (a'la nix package manager)

2020-02-01 Thread Anton Vodonosov
Hello. In order to speed up the build of a big multi-module project, I'd like to reuse the artifacts of modules that haven't changed. Manual versioning is tedious and error-prone. Is it possible to automatically assign versions so that versions only change if module sources or dependencies