1. Introducción
He creado un proyecto maven en Eclipse, al final lo he hecho de este modo:New->Maven->Maven Project -> marcar la casilla de "create simple project (skip archeype selection)
Y completamos los campos (observar que se crea el proyecto JavaFX02 y vamos a mostrar el JavaFX01)
Al final después de crear todas las clases y dejar el proyecto operativo vemos como lo muestra Eclipse
2. pom.xml (el fichero mas importante)
Según lo visto en una entrada anterior creamos este fichero pom.xml actualizado a las nuevas versiones que aparecen en maven. Con esto conseguimos:1. Empaquetar los ficheros a la carpeta "target/MiCarpeta"
2. En esta carpeta se guarda:
2.1 El fichero jar "MiJar.jar"
2.2 La carpeta "lib" que contiene todas las librerías (jars)
3. Para ejecutar "MiJar.jar" hay que tener java13 y dar
java -jar MiJar.jar
#java_ximo -jar MiJar.jar
Donde java_ximo representa una copia de java.exe para el caso que se tenga una version de java distinta instalada. OJO: Hay que darle la ruta del "jdk13.02/bin" a la variable de entorno "PATH"
Veamos el fichero:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 | <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>ximodante</groupId> <artifactId>JavaFX01</artifactId> <packaging>jar</packaging> <version>0.0.1-SNAPSHOT</version> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>13</maven.compiler.source> <maven.compiler.target>13</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>org.openjfx</groupId> <artifactId>javafx-controls</artifactId> <version>14</version> </dependency> <dependency> <groupId>org.openjfx</groupId> <artifactId>javafx-fxml</artifactId> <version>14</version> </dependency> <!-- https://stackoverflow.com/a/52654791/7704658 --> <dependency> <groupId>org.openjfx</groupId> <artifactId>javafx-graphics </artifactId> <version>14</version> <classifier>win</classifier> </dependency> <dependency> <groupId>org.openjfx</groupId> <artifactId>javafx-graphics </artifactId> <version>14</version> <classifier>linux</classifier> </dependency> <dependency> <groupId>org.openjfx</groupId> <artifactId>javafx-graphics </artifactId> <version>14</version> <classifier>mac</classifier> </dependency> <!-- https://mvnrepository.com/artifact/commons-io/commons-io --> <!-- <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.6</version> </dependency> --> <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-compress --> <!-- <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-compress</artifactId> <version>1.20</version> </dependency> --> <!-- https://mvnrepository.com/artifact/org.tukaani/xz --> <!-- <dependency> <groupId>org.tukaani</groupId> <artifactId>xz</artifactId> <version>1.8</version> </dependency> --> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <release>13</release> </configuration> </plugin> <plugin> <groupId>org.openjfx</groupId> <artifactId>javafx-maven-plugin</artifactId> <version>0.0.3</version> <configuration> <launcher>launcher</launcher> <mainClass>ximodante.JavaFX01.App</mainClass> </configuration> </plugin> <!--https://www.baeldung.com/learn-spring-security-course --> <plugin> <artifactId>maven-resources-plugin</artifactId> <version>3.1.0</version> <executions> <execution> <id>copy-resources</id> <phase>validate</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>${basedir}/target/MiCarpeta</outputDirectory> <resources> <resource> <directory>resources</directory> <filtering>true</filtering> </resource> </resources> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>3.1.2</version> <executions> <execution> <id>copy-dependencies</id> <phase>prepare-package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory> ${project.build.directory}/MiCarpeta/lib </outputDirectory> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.2.0</version> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> <mainClass> ximodante.JavaFX01.NewMain </mainClass> </manifest> <manifestEntries> <Class-Path>.</Class-Path> </manifestEntries> </archive> <finalName>MiCarpeta/MiJar</finalName> </configuration> </plugin> <!-- fin --> </plugins> </build> </project> |
Lineas 14-24: Dependencias del javafx
Lineas 26-46: Se dan las dependencias para cada sistema operativo (linux, windows y mac) según dice José Pereda.
Líneas 48-72: Otras librerías que hagan falta como apache-commons etc (en este caso no ha hecho falta y se han comentado)
Línea 77-88: Compilador de maven (imprescindible)
Línea 87-95: javafx-maven-plugin (imprescindible si quieres ejecutar la aplicación desde Eclipse) y para crear una imágen (con todos los problemas que ello da)
Líneas 97-161: Para empaquetar y distribuir la aplicaión dentro de la carpeta "target/MiCarpeta" según una entrada anterior
Línea 151: La clase a ejecutar. Muy Importante
No hay comentarios :
Publicar un comentario