-
Notifications
You must be signed in to change notification settings - Fork 323
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
investigate switching the build to gradle #228
Comments
Is this meant in a sense like "replace the current Maven (pom.xml) with a Gradle (build.gradle) build"? If yes, I'm happy to investigate whether there are any complex/difficult build steps in the current pom.xml - see https://github.com/gesellix/jdeb/tree/gradle-build for progress. This should be independent of providing a jdeb Gradle plugin. |
I'm not sure building a Maven plugin with Gradle is a good idea. I would personally prefer sticking to Maven. |
If you check out https://github.com/gesellix/jdeb/tree/gradle-build and run During the next days I can have a look at the integration tests. The first step is to include them in the build and then fix them. I expect that we then get to know if @ebourg is right about possible risks when building a Maven plugin with Gradle. I'd also argue that it feels a bit strange and that's why I would also think about maintaining both build tools for a while. The project is not too complex from a build configuration point of view so that I'd hope that the maintainers wouldn't have too much hazzle. At least it would be a start and a chance to get some experience. @tcurdt what do you expect for this issue as outcome, or in other words: which questions do you need to be answered and what do you need to decide about the introduction of a Gradle build? edit: this looks interesting but quite hacky: http://stackoverflow.com/questions/11209382/build-maven-plugins-using-gradle#answer-17181234 |
@gesellix that's for digging into this! The question that needs to be answered:
@ebourg we are building deb packages in java and also provide an ant plugin - what's your point? ;) |
Having had some sleep I'd propose the following structure to address the potential issues with ant/maven/whatever plugins:
|
Now regarding the maven-plugin module: I would think about making it a Maven project/module so that it feels "right" in a sense like @ebourg proposed. |
Notes regarding @tcurdt's questions:
|
Splitting up As for the shadow plugin - unfortunately it's still missing the minimize functionality |
Is the missing minimizeJar a show stopper? Do you have an ETA for jdeb 2.x? |
@gesellix not sure I would call it a show stopper - but it definitely sucks (and given the original minimizeJar in the shade plugin was contributed by me I fear more work coming my way then). So far 2.x is just a sum of what is wrong with 1.x. |
I don't get the point of switching to Gradle. What's wrong with the Maven build for jdeb? |
Regarding the integration tests: they are highly Maven specific, so I suppose you prefer them to stay Maven specific? I'd continue with the coverage tools first, since that seems to be your incentive to switch to Gradle ;-) |
@gesellix well, ideally we would have integration test not just for the maven plugin but also ant (and gradle?) - at least that's my vision for 2.x. |
I'm still keeping this one in mind, so I'd like to share my thoughts: I'd propose to wait for a split planned for 2.x. Splitting the code base could then consider this issue as one of all other aspects. Perfect would be when some platform independent artefact can be created, while specific ones (Ant, Maven plugin, Gradle plugin, ...) only need to be some kind of adapters. The beauty for consumers would then be that e.g. a Maven environment wouldn't need to care about Gradle specifics. Even the integration tests are highly specific, acting like a consumer, while some might probably also be implemented as consumers of the core only. A personal note about the duplicated integration tests across the specific modules: I wouldn't consider that as an issue, because sometimes they might be very similar, but the semantics change over time. I wouldn't try to enforce them to stay same, because from a consumer's point of view there's no value in "same integration tests across Maven and Gradle plugins". Re-using them only helps the maintainer, so the question is: how often does/should an integration test fail for a quite stable concept like creating a .deb file? ;-) In essence: I propose to postpone the discussion until 2.x is near. Thoughts? Edit: which feature or event would start the 2.x development? |
This is off the table (for now). Hence closing. |
TSSIA
The text was updated successfully, but these errors were encountered: