Converting to "The Software Model"

Hello,

After seeing the video of Hans use the new software model, I wanted to try and convert my project to use it as well. However, after looking at https://docs.gradle.org/current/userguide/building_java_libraries.html#N183D2 I am not really sure how to go about it. Is there any more documentation, or examples of converting an existing project to use the new software model Hans used in his video demo?

Thanks
John

Can any of the Gradle developers comment? Or even better point me to more documentation?

It depends a little on what your project is doing. A lot of gradle hasn’t been migrated into the model way of doing things yet, (I’m not involved enough to give you specific details), and you’ll find that it’s moving/changing pretty rapidly still. That said, I’ve been reasonably successful in building a plugin that is mostly using the model architecture, by referencing the source code and this page: https://docs.gradle.org/current/userguide/new_model.html. However, it’s still rather vague and I keep running into interesting problems.

Cheers,
/axl

Hi John,

At the moment I agree that we don’t have much documentation about how to migrate to the Java software model. The plan is to have something that users can try out late January 2016. Before, you can take a look at the samples, but obviously they won’t tell you how to migrate. Especially, we’re heavily developing features that are absolutely critical before we can publicly call for a trial, like test execution for example.

Hi John,

Following on to Cédric’s comment, it would be great to know a bit more about what you’re trying to convert. Anything you could share would be helpful. For example, is it a relatively simple Java application or library? A multi-project build? Are there custom plugins involved? While we probably can’t commit to assisting with the migration of each specific item right now, knowing the answers to the questions above can help inform and validate our planning and prioritization around the software model. It can also help us point you at any specific documentation / samples that do already exist.

Thanks!

Axl and Cedric,
Thanks for letting me know about the current state. I will keep an eye out for when you do have more documentation/it is in a more stable state.

Chris,
It is a basic webapp, using the multi-project build. No custom plugins, so I thought it should be fairly straight forward. I have a lot of experience converting our old ant and maven builds into gradle but it seems like I just don’t understand what to do cause when I use the new model it seems like I just break everything. I believe the main trouble I am having is defining third party dependencies since I can no longer use the java plugin (unless I still should be using that?)

Thanks for all the help and replies.

If you’re working with a webapp, you’re probably best sticking with the current-world approach. The JVM Software Model does not yet have explicit support for building WARs, for example.

Stay tuned to the blog and announcements here in the forum. We’ll be announcing more about the Software Model roadmap soon. Thanks again for reaching out.

I don’t actually build a war. I typically have a plain java application that uses spring mvc or spring boot to add web app capabilities.

Do you have a roadmap for when the software model will be more defined with more documentation on how to convert various types of java projects to using it? Cause it seems like from Han’s talk it is the future, and the sooner you convert the better.

Hi John, sorry for the delayed response. The JVM software model does not yet have support for executable applications, so a Spring Boot app—even though it is ultimately just a simple main method—is not yet supported in a first-class way.

Regarding a roadmap, we’re hard at work on it right now. You can expect to see it communicated by end of January or early February at the latest.