Senest opdateret 07/09-2020
Dette er en kort guide til at bygge en executable .jar-fil med Maven.
Hvad er en executable .jar-fil?
En .jar fil er Java-filer der er kompileret, og samlet til én fil (.jar-filen). Denne fil kan bruges som:
- et bibliotek til andre Java-programmer
- et eksekverbart program (executable jar)
Vær opmærksom på:
- Det forventes at du bruger IntelliJ IDEA
- Det forventes at du ved hvordan man laver et Maven-projekt i IntelliJ
- Guiden er lavet ud fra
IntelliJ IDEA 2020.2.1 (Ultimate Edition)
, samt JDK 14, men det burde også virker på lavere versioner - Dette .git-repo er et eksempel på resultatet fra guiden, og kan klones og direkte afprøves på din egen computer
1. Lav et Maven-projekt i IntelliJ eller benyt ét du allerede har lavet
2. Opdatér din pom.xml:
- Kopiér følgende ind i din
pom.xml
-fil:<build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <archive> <manifest> <!-- Full name of class containing main function to run --> <mainClass>mypackage.Main</mainClass> </manifest> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <!-- Optional: Stops 'jar-with-dependencies' to be appended the .jar's name --> <appendAssemblyId>false</appendAssemblyId> <!-- Optional: Sets a custom name for the jar file --> <!-- <finalName>MyCustomFileName</finalName> --> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
Se på
pom.xml
i dette projekt for at se, hvor det skal kopieres hen.
3. Tilføj din "Main"-klasse:
-
Ret værdien i elementet
<mainClass>mypackage.Main<mainClass>
i dinpom.xml
framypackage.Main
til det fulde navn på klassen, der indeholder denmain
-metode du gerne vil køre, når jar-fil skal køres.Det fulde navn består af klassen (og dermed filens) navn, samt navnet på pakken, som klassen ligger i. Hvis f.eks. din klasse hedder
Program.java
, og ligger i mappensrc/main/java/mypackage/myotherpackage/Program.java
er det fulde navnmypackage.myotherpackage.Program
, og der skal derfor stå<mainClass>mypackage.myotherpackage.Program<mainClass>
4. Husk at reload dit Maven-projekt:
- Højre klik på
pom.xml
og trykMaven → Reload project
5. Byg dit Maven-projekt:
-
Åben Maven-vinduet ved at trykke
View → Tool Windows → Maven
i toolbar'en i toppen af IntelliJ -
I det åbnede vindue gå ind under
Lifecycle
og dobbelt-klik påpackage
- din .jar-fil bliver nu bygget tiltarget
mappen i dit projekt!
6. Done!
- Din .jar fil kan køres som en helt almindeligt jar-fil (f.eks. fra terminalen).
Detaljer
-
.jar-filen bliver ikke bygget når du kører dit projekt som normalt (dvs. ved at trykke på den grønne pil)
-
Din .jar-fil navngives efter dit
<artifactId>
samt<version>
ipom.xml
. Du kan navngive den efter eget valg ved at fjerne kommentaren<finalName>
og indsætte dit nnavn dér