JARs, WARs und EARs paketieren
Erstellen Sie mit den integrierten Plugins von Gradle verschiedene bereitstellbare Artefakte (JAR, WAR, EAR).
JARs, WARs und EARs paketieren ist eine kostenlose Groovy & Gradle: JVM Automation and Build Engineering-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Groovy & Gradle: JVM Automation and Build Engineering-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Groovy & Gradle: JVM Automation and Build Engineering-Kurs umfasst insgesamt 4 Lektionen.
Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.
Packaging for Deployment
When you build an application, you need a way to package it for distribution and deployment. This is where deployable artifacts come in!
These are standardized packages like JARs, WARs, and EARs that bundle your application's code, resources, and dependencies. Gradle provides powerful, built-in plugins to create them efficiently.
Java Archives (JARs)
The most common artifact is a JAR (Java Archive). It's a standard format for packaging multiple Java class files, associated metadata, and resources into a single file.
JARs are typically used for:
- Java libraries
- Desktop applications
- Command-line tools
Gradle's built-in java plugin automatically configures your project to produce a JAR file.
Basic JAR Creation
To create a basic JAR, you simply apply the java plugin in your build.gradle file. Gradle will automatically find your source code (usually in src/main/java) and build a JAR.
Here's a minimal build.gradle:
plugins {
id 'java'
}
group 'com.coddykit'
version '1.0-SNAPSHOT'
repositories {
mavenCentral()
}Making JARs Executable
For command-line applications, you often want an executable JAR. This means you can run it directly from your terminal using java -jar your-app.jar.
To achieve this, you need to configure the JAR's manifest file to specify which class contains your application's main method. You also typically bundle all project dependencies into this JAR.
Building an Executable JAR
Let's create a simple Java class that we'll package into an executable JAR. This class will have a main method.
Place this in src/main/java/com/coddykit/app/Greeter.java:
package com.coddykit.app;
public class Greeter {
public String getGreeting() {
return "Hello from CoddyKit!";
}
public static void main(String[] args) {
System.out.println(new Greeter().getGreeting());
}
}Executable JAR Configuration
Now, let's configure build.gradle to make the previous Java code into an executable JAR. We specify the main class and include runtime dependencies.
After running gradle jar, you can execute it with java -jar build/libs/your-project-name-version.jar.
plugins {
id 'java'
}
group 'com.coddykit'
version '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
jar {
manifest {
attributes 'Main-Class': 'com.coddykit.app.Greeter'
}
// This bundles all runtime dependencies into the JAR
from {
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
}
}Web Application Archives (WARs)
A WAR (Web Application Archive) is a package specifically designed for web applications. It contains all the necessary components for a web application, such as:
- Servlet classes
- JSP files
- HTML pages, CSS, JavaScript
- Configuration files (e.g.,
web.xml) - Dependent JARs
WARs are typically deployed to a servlet container or application server (e.g., Tomcat, Jetty).
Using the `war` Plugin
To create a WAR file, you apply Gradle's built-in war plugin. This plugin automatically applies the java plugin and adds tasks to build WAR files according to the standard web application structure.
By default, web content (like HTML, CSS, JS) should be placed in src/main/webapp.
plugins {
id 'war' // This implicitly applies the 'java' plugin
}
group 'com.coddykit'
version '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
dependencies {
// Example: add a servlet API dependency for compilation
providedCompile 'javax.servlet:javax.servlet-api:4.0.1'
}
war {
archiveFileName = "my-web-app.war"
// You can customize the webAppDirectory if needed
// webAppDirectory = file('src/main/webroot')
}Enterprise Archives (EARs)
An EAR (Enterprise Application Archive) is a package used to bundle multiple JARs and WARs into a single deployable unit. It's primarily used for larger Java EE (Enterprise Edition) applications deployed to full Java EE application servers (e.g., WildFly, WebLogic).
An EAR can contain:
- One or more WAR modules (web applications)
- One or more EJB-JAR modules (Enterprise JavaBeans)
- Utility JARs (common libraries)
Using the `ear` Plugin
Gradle's ear plugin allows you to create EAR files. You declare which JARs and WARs should be included as modules within the EAR. This is often used in multi-project builds where subprojects produce the individual JARs and WARs.
The deploy configuration is used to add modules to the EAR.
plugins {
id 'ear'
id 'java' // For potential utility JARs within the EAR
id 'war' // For potential WARs within the EAR
}
group 'com.coddykit'
version '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
dependencies {
// Example: Add a utility JAR and a WAR (e.g., from subprojects)
// deploy project(':my-utility-jar')
// deploy project(':my-web-app-war')
// For this example, let's just make a dummy dependency
deploy 'org.apache.commons:commons-lang3:3.12.0'
}
ear {
archiveFileName = "my-enterprise-app.ear"
// Optional: Customize application.xml (deployment descriptor)
deploymentDescriptor {
// applicationName = "MyEnterpriseApp"
}
}Artifact Type Check
Consider the different types of deployable artifacts and their primary use cases.
Recap: Packaging Artifacts
In this lesson, we explored how Gradle helps you package your applications into standard deployable artifacts:
- JARs: For libraries and standalone Java applications, configured with the
javaplugin. You can make them executable by defining aMain-Class. - WARs: For web applications, using the
warplugin and deployed to servlet containers. - EARs: For bundling multiple JARs and WARs in large enterprise applications, using the
earplugin.
Mastering these packaging techniques is crucial for effective deployment and distribution of your Java applications.
Häufig gestellte Fragen
Ist die Lektion „JARs, WARs und EARs paketieren“ kostenlos?
Ja — der vollständige Text von „JARs, WARs und EARs paketieren“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Groovy & Gradle: JVM Automation and Build Engineering-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Groovy & Gradle: JVM Automation and Build Engineering-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „JARs, WARs und EARs paketieren“?
Erstellen Sie mit den integrierten Plugins von Gradle verschiedene bereitstellbare Artefakte (JAR, WAR, EAR). Du übst Groovy & Gradle: JVM Automation and Build Engineering mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Groovy & Gradle: JVM Automation and Build Engineering zu starten?
Keine Vorkenntnisse erforderlich. Groovy & Gradle: JVM Automation and Build Engineering auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „JARs, WARs und EARs paketieren“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Groovy & Gradle: JVM Automation and Build Engineering-Lektion Code schreiben und ausführen?
Ja. Jede Groovy & Gradle: JVM Automation and Build Engineering-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- JARs, WARs und EARs paketieren
- In Repositories veröffentlichen
- CI/CD-Integration
- Versionierung und Release-Automatisierung