eskatos / vlingo-gradle-plugin

Gradle plugins supporting the vlingo platform
https://vlingo.io/
Mozilla Public License 2.0
1 stars 0 forks source link

Make plugin compatible with Android Gradle Plugin #2

Closed eskatos closed 5 years ago

eskatos commented 5 years ago

Requires reacting to Android Gradle Plugin its build types and source sets and configure accordingly.

Lower supported version of the Gradle Android Plugin is an open question and will be settled when implementing depending on the found backwards compatibility complications.

daferpi commented 5 years ago

Sorry for misunderstanding I think that is the right issue, make compatible with android, maybe we need to start from here before, sorry for the extra effort. Maybe the information in this url can help you:

http://blog.sqisland.com/2015/02/gce2retrofit-gradle-plugin.html

Check the part about 'Points to note' that talk about project.plugins.hasPlugin and variant.registerJavaGeneratingTask the variant part I think that is important

this is the repo that talk in the article that contains a example:

https://github.com/chiuki/gce2retrofit

eskatos commented 5 years ago

No worries. There was no extra effort, backward compatibility with Gradle versions <5.0 is a must have for people stuck on previous versions and it wasn't so much work anyway.

Yep, things are different on Android mostly because of variants. variant.registerJavaGeneratingTask won't work as it is for generated source that doesn't depend on the compiled output and is referenced from source. vlingo actor proxies generation is the opposite, it depends on the compiled output and its compiled output is referenced at runtime only. A bit like annotation processors.

eskatos commented 5 years ago

@daferpi I just published a 0.1.0 version with initial Android support. It should work with Gradle >=4.10.1, Android Gradle Plugin >=3.3.0, vlingo-actors >= 0.8.0 and Java actor protocols. Configuration is a bit clunky for now, see the plugin's README and AndroidTest.

It's not done yet, I plan to make the configuration DSL better. But it should get you going. If you encounter any issue with the Android support, please report.

daferpi commented 5 years ago

Perfect,I go to do some test and check how works!, Thanks a lot for your job and amazing work. I provided feedback ASAP, thanks again!!

daferpi commented 5 years ago

After some test, I think that this issue can be closed, because the plugin works well. I only have one question, when I try to setup the directory path manually the plugin always create a folder with the name that I put in the destinationDirectory and inside all the package that contains the actors, exist any way to no create all the package and only the folder with the name that contains the destinationDirectory?

eskatos commented 5 years ago

The destinationDirectory is a "java source directory" and should contain folders for packages otherwise some tools like IDEs will warn/suggest about files being in the wrong folder.

Thanks for the feedback, I opened #3 as a follow up and will close this issue.