pledbrook / lazybones

A simple project creation tool that uses packaged project templates.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Still supported?

sebersole opened this issue · comments

Silly question probably since there seems to have been no activity in this repo for 4 years at the most recent. Long story short I am looking to implement Maven archetype alternative for a project I am helping with at the moment for generation of Gradle projects. Gradle now has the build-init-plugin system, but it is very limited and not possible to extend with custom init types.

See gradle/gradle#1686 for reference. In fact that issue is how I even became aware of this project.

I've run into a number of issues though trying to use it (via SDK manager):

[sebersole@localhost tmp]$ lazybones create file:///home/sebersole/projects/hibernate-lazybones/templates/hibernate-orm-basic.zip lazybones-test
WARNING: An illegal reflective access operation has occurred
WARNING: ...

Creating project from template file:///home/sebersole/projects/hibernate-lazybones/templates/hibernate-orm-basic.zip (latest) in 'lazybones-test'

java.util.zip.ZipException: archive is not a ZIP archive
	at org.apache.commons.compress.archivers.zip.ZipFile.positionAtEndOfCentralDirectoryRecord(ZipFile.java:772)

I also tried building from source but the project uses an ancient Gradle version.

Is it worth submitting pull requests? Or should I simply fork it?

Or, if not supported, anyone aware of a supported alternative?

Thanks!

Looks like @wmclifford picked up this work and continued in https://github.com/wmclifford/lazybones-ng.

Not sure on this specific issue, but I see that @wmclifford upgraded Gradle to the latest 6.8.3. So, I think you could give a try to his work and, if PR is needed, open it there.

It has been at least a few weeks since I last had a chance to work on this, but, yes, I believe the "not a Zip archive" issue has been fixed and merged to master on my fork ... had something to do with the version of Gradle at run time, not necessarily build time - that is, where the plugin was used, not built. I had to add some logic to check the Gradle version so that the plugin would work regardless of what version of Gradle was in use.

I am (slowly) in the process of converting the codebase to Kotlin - primarily as an exercise to learn the language, and secondarily as I have gotten the impression that Gradle may be leaning that direction in favor over Groovy. Contributions are most certainly welcome, as are critiques since I most likely will not have the best Kotlin code in the world while I fumble through learning syntax. I am also trying to add unit and integration tests since there are not many of either at the moment; review of those tests to make sure I am understanding the existing implementation are extremely welcome, particularly by the original authors if they are still monitoring this repository.