CAPSULE-NEXTFLOW(1)

πŸ’– CAPSULE-NEXTFLOW πŸ’–

okay bestie, so this is a General Commands manual page, and it's all about capsule-nextflow β€” the packaging + dev tool for JVM apps. she's a whole vibe, let's get into it 🫢


✨ NAME ✨

capsule-nextflow β€” packaging and development tool for JVM applications


🌸 SYNOPSIS 🌸

capsule-nextflow jarFile

πŸ¦‹ DESCRIPTION πŸ¦‹

so here's the tea, bestie: capsule-nextflow lets you create capsules, which are literally single executable JARs that contain everything an application needs to run. and when I say everything, I mean it β€” either as embedded files, or as declarative metadata. it's giving "one file, all the things" πŸ’…

what it actually does: it launches the application inside the JAR file jarFile.

now, that JAR file is not just any JAR, bestie. it must contain:

  • the Capsule.class file
  • the JAR of the application to be run
  • and a META-INF/MANIFEST.MF file that mentions Capsule as its Main-Class and its Premain-Class, plus the main class of the application to be run as its Application-Class

the minimal Manifest file would contain exactly this:

Manifest-Version: 1.0
Main-Class: Capsule
Premain-Class: Capsule
Application-ID: test
Application-Version: 1.0
Application-Class: path.to.main.Class

where Application-ID and Application-Version fields are chosen by the user (that's you, main character ✨), and Application-Class is the main class of the application.

no cap: if those manifest fields aren't set up right, your capsule is not going to slay the way you want it to. get Main-Class and Premain-Class both pointing at Capsule. periodt.

πŸŽ€ EXAMPLE πŸŽ€

see in /usr/share/doc/capsule-nextflow/examples. go peek, it's iconic πŸ‘‘


and that's the whole page, bestie πŸ’œ this came out of the General Commands manual, dated April 2021, for version CAPSULE-NEXTFLOW(1) β€” mwah, stan a well-documented packaging tool, bye! πŸ“πŸ§šπŸ’–