GithubHelp home page GithubHelp logo

Comments (4)

danielflower avatar danielflower commented on August 27, 2024

Hi there. I've never really used Git sub-modules so I don't really understand what would be required to get it working, or what the high level rules would be. How do you think they should work? For example should they just be ignored when it comes to releasing?

from multi-module-maven-release-plugin.

ascheman avatar ascheman commented on August 27, 2024

We have played around with the plugin and submodules and maven/git submodules are used nicely for the release algorithm (increasing of "build number" etc.).

However, what does not work:

  • Tags are set in the (git) parent module where I would like to see them on the (git) sub module scope
  • The plugin currently cannot check out the modified pom.xml files to their initial state again.

I think the latter can be easily solved by checking if the pom.xml was changed in a sub module. BTW: As far as I can see the modified pom.xml is only used for building/releasing with the "final" version. Would it be possible to just create a tmp.pom file (as copy from pom.xml with the local modifications) and delete it afterwards without even touching the original pom.xmls?

The first issue probably needs some more investigation: If sub modules are used, the tags need to be applied to the sub modules.

You may use the following project with sub modules to see my problem:

git clone --recursive -b feature/submodules-poc ssh://[email protected]/dukecon/dukecon_server_reactor
cd dukecon_server_reactor
mvn releaser:release

Everything works well until you run into the error with the POMs which cannot be restored. And you will also see the tags afterwards:

git tag -l
dukecon-html5-client-1.1.0
dukecon-reactor-1.0.0
dukecon-server-1.1.0
dukecon-server-api-1.1.0
dukecon-server-springboot-1.1.0

cd dukecon_server/
git tag -l

All tags in the master/reactor project but none in the sub projects!

from multi-module-maven-release-plugin.

jdileonardo avatar jdileonardo commented on August 27, 2024

I second this feature.

Currently i'm building a huge project(27 git repo's) and each repo has it's own parent pom.

What i'm looking to do is create a Parent Repo, and all 27 component repo's would be submodules.

Then i'd create an Aggregate pom in the parent, which would point to the submodules and then it'd build for me all in one maven build. Instead of what i do currently which is build them in seperately calculated order.

@danielflower submodules, imo, is worth looking into :). Great work on the plugin!

from multi-module-maven-release-plugin.

danielflower avatar danielflower commented on August 27, 2024

I still don't have personal experience with sub-modules, so I probably won't work on this myself. But if anyone has the time, then it wouldn't be too hard to add a sample test project consisting of some submodules, and once you have a test the implementation is probably simple enough.

BTW: As far as I can see the modified pom.xml is only used for building/releasing with the "final" version. Would it be possible to just create a tmp.pom file (as copy from pom.xml with the local modifications) and delete it afterwards without even touching the original pom.xmls?

That is a really good idea whether submodules are used or not. I know when running mvn you can specify a non-default pom location, but I wonder if it has any other consequences.

from multi-module-maven-release-plugin.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.