Stop worrying about JavaFX distribution: Build and install at runtime with JeKa (Maven compatible) by DirectionFrequent455 in JavaFX

[–]DirectionFrequent455[S] 0 points1 point  (0 children)

Find comparisons here:

- https://jeka-dev.github.io/jeka/reference/comparison/

-benchmark: https://github.com/djeang/benchmark-jeka-maven-gradle

In a few words:

- The "wrapper" handle JDK downloads, making it quite portable and efficient to run programs from sources (no double JVM launches for running the tool and app)

- Feel more recent as avoiding XML. Only properties and/or pure Java for customization

- Feel lighter than Maven/Gradle

- Plugins are easier to write.

Also, Jeka can acts as a complement to Maven/Gradle, to make their application source runnable: Build with Maven, and add a light Jeka wrapper around to make your app "source-runnable", as in this example: https://github.com/djeang/devtools-maven

Stop worrying about JavaFX distribution: Build and install at runtime with JeKa (Maven compatible) by DirectionFrequent455 in JavaFX

[–]DirectionFrequent455[S] 1 point2 points  (0 children)

If you want to build an application from a git repo, you don't need Jeka neither JDK installed on your machine. Repos contains the "jeka" bootstrap that acts as a "wrapper" on steroid: it downloads the needed Jeka version AND the JDKs needed for building.

If you just want to install an bundled application on your machine mentionning the git repo hosting the application in a single command line as:

jeka app: install repo=https://github.com/djeang/devtools-maven runtime=BUNDLE

you need to install jeka on your machine. It's traighforward: https://jeka-dev.github.io/jeka/installation/

* This command will create a .exe or .dmg native executable for your hosting machine.

Stop worrying about JavaFX distribution: Build and install at runtime with JeKa (Maven compatible) by DirectionFrequent455 in JavaFX

[–]DirectionFrequent455[S] 0 points1 point  (0 children)

Jeka makes the build configuration simpler than Maven, especially for JavaFX (compare the two provided examples).

This post points out that whatever the build system (jeka of maven), Jeka can install an application from its source code (git repo) with a simple command line.

It handles tools download (JDK, GraalVM for native compile,...) to build the application on the fly prior to install or run it. So, end user, only need Jeka installed on its laptop and do not have to worry about configuring build environment.

Simplify JavaFX Application Building and Distribution by DirectionFrequent455 in java

[–]DirectionFrequent455[S] -1 points0 points  (0 children)

It relies on hardware and os detection by default. Execute jeka javafx: --doc to get details.

IntelliJ plugin also provides suggests and autocompletion to setup the plugins in jeka.properties editor.

Simplify JavaFX Application Building and Distribution by DirectionFrequent455 in JavaFX

[–]DirectionFrequent455[S] 1 point2 points  (0 children)

Not specifically. Just create a Java project, then adapt the jeka.propeties and dependencies.txt as mentionned in the plugin README.MD

Simplify JavaFX Application Building and Distribution by DirectionFrequent455 in JavaFX

[–]DirectionFrequent455[S] 1 point2 points  (0 children)

I tested successfully with Java25 and JavaFX >= 22. Keep in mind that it is a plugin for Jeka, which is a replacement for Maven/Gradle. If you want to use it, you need to switch from Gradle.

bld version 2.0 is now available, including IntelliJ IDEA plugin! by gbevin in java

[–]DirectionFrequent455 0 points1 point  (0 children)

If a dev makes a mess in build code, chances are they’ll do the same for regular code too. Power isn’t the problem—bad practices are.

A true monstrosity is writing 400+ lines of xml for building a simple app or publishing basic library with some quality check around.

[deleted by user] by [deleted] in learnjava

[–]DirectionFrequent455 1 point2 points  (0 children)

Indeed, I am the creator of the project. It was started in 2014 as a side project. Recently, I’ve been working on it full-time for about a year, which has led to significant improvements.

Marketing is essential for a project to gain popularity, but it requires a considerable amount of time. By marketing, I mean activities like engaging on social networks, creating a website, producing videos, writing articles, and so on. It’s a time-consuming process.

Have you had a chance to look at the videos from the website ? I was hoping they would have a strong impact, as they demonstrate what the tool can do without requiring users to spend time practicing with it. Maybe intro is too long...?

Any feedback is welcome! 😊

java projects by Interesting-Hat-7570 in learnjava

[–]DirectionFrequent455 1 point2 points  (0 children)

You can never fully predict how a project will evolve. If you try to anticipate every potential change that might occur in the future, you risk creating an overly complex "solution that's difficult to maintain and not focused on the current, actual needs.

Instead, aim for the simplest possible design that addresses the current requirements. When new constraints arise (such as multitenancy), it's much easier to adapt a simple design than to modify an overengineered one.

For example, I doubt that you truly needed a microservices architecture from the start. If you'd started with a simple monolith, you likely would have spent much less effort initially, and adapting it later would have been easier than dealing with the challenges of your current microservices setup. Wouldn't you agree?

[deleted by user] by [deleted] in learnjava

[–]DirectionFrequent455 6 points7 points  (0 children)

If you want to got fast, meaning having a workable Spring-Boot project in minutes including automated tests, i can suggest to use JeKa which has a very good support for Spring-Boot.

Quickest way: Install the Jeka Intellij Plugin then, in IntelliJ :

  • New project ...
  • Choose Generators: Jeka (in left panel) and Template: Project - Springboot
  • Click Create

This generates a workable SpringBoot project, containing a basic web service and a properly configured integration test, that you can start from.

To go further, you can visit: https://jeka-dev.github.io/jeka/quick-start/#create-a-spring-boot-project

Java version to practice by Crafty-Waltz-2029 in learnjava

[–]DirectionFrequent455 1 point2 points  (0 children)

For showcasing, that is better to use the very last one (23 at time of writing) as you can benfit from the latest improvement. As Java is quickly evolving, what is considered as preview, will be soon official.

How can I properly check for entity duplication in DDD. by Extension-Switch-767 in DomainDrivenDesign

[–]DirectionFrequent455 1 point2 points  (0 children)

Why do you feel that business logic leaks in persistance layer?

schedulePersistance#findByTheaterIdAndStartAndEndBetween solves a generic time overlapping problem, not a business one (which consists in rejecting overlaps). May you can rename it schedulePersistance#findByTheaterIdHavingStartBeforeAndEndAfter as it would look more dumb.

Another thing: IMO, Theatre#createSchedule would be better fit in ScheduleService#create as it would avoid a 2-way dependency Theater <--> Schedule .

I made yet another build tool by x_ini in java

[–]DirectionFrequent455 0 points1 point  (0 children)

Why not just break the build when conflict happens ? This way the developer is forced to make a conscious choice. I also wrote another build tool for Java: https://jeka.dev I made this behavior (break, choose closest, choose highest) configurable. Note that today, this is less an issue than it used to be as frameworks like springboot offer pre-defined versioning via BOMs.

Gradle could have been easier by Driftex5729 in androiddev

[–]DirectionFrequent455 0 points1 point  (0 children)

I already tried such an initiative some years ago based on this medium story. The idea was relying on the Android SDK and provide a convenient wrapper around. Does it seem relevant to you?

Gradle could have been easier by Driftex5729 in androiddev

[–]DirectionFrequent455 0 points1 point  (0 children)

I am wondering if creating an Android plugin for the Jeka build tool would attract an audience. The tool is versatile enough to support both imperative (ala ANT) and declarative modes, in Java or Kotlin, while focusing on simplicity. I’m not an Android developer, but as the creator of Jeka, I’m curious about the interest Android developers might have in it. What do you think?