Create multiple runnable Jars (with dependencies included) from a single Maven project [duplicate]

You can do it. You’ll need a separate execution for each artifact that you’re building (i.e., give each its own id but you can leave the phase as default), and you’ll need to specify the finalName and archive/manifest/mainClass for each. <build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <executions> <execution> <id>build-a</id> <configuration> <archive> <manifest> <mainClass>foobar.Aclass</mainClass> </manifest> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> … Read more

Distributing my Python scripts as JAR files with Jython?

The best current techniques for distributing your Python files in a jar are detailed in this article on Jython’s wiki: http://wiki.python.org/jython/JythonFaq/DistributingJythonScripts For your case, I think you would want to take the jython.jar file that you get when you install Jython and zip the Jython Lib directory into it, then zip your .py files in, … Read more

Reference jars inside a jar

You will need a custom class loader for this, have a look at One Jar. One-JAR lets you package a Java application together with its dependency Jars into a single executable Jar file. It has an ant task which can simplify the building of it as well. REFERENCE (from background) Most developers reasonably assume that … Read more

How to create a fat JAR with Gradle Kotlin script?

Here is a version that does not use a plugin, more like the Groovy version. import org.gradle.jvm.tasks.Jar val fatJar = task(“fatJar”, type = Jar::class) { baseName = “${project.name}-fat” manifest { attributes[“Implementation-Title”] = “Gradle Jar File Example” attributes[“Implementation-Version”] = version attributes[“Main-Class”] = “com.mkyong.DateUtils” } from(configurations.runtime.map({ if (it.isDirectory) it else zipTree(it) })) with(tasks[“jar”] as CopySpec) } tasks … Read more

How do I create an executable fat JAR with Gradle with implementation dependencies?

You can use the following code. jar { manifest { attributes( ‘Main-Class’: ‘com.package.YourClass’ ) } from { configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } } } Be sure to replace com.package.YourClass with the fully qualified class name containing static void main( String args[] ). This will pack the runtime dependencies. Check the docs if … Read more