world springbootapplication multi hello generate example maven spring-boot

maven - springbootapplication - spring boot multi module



Agregue la biblioteca externa.jar a Spring boot.jar interno/lib (5)

En Spring Boot: También me enfrenté a un problema similar y debajo del código me ayudó.

<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>1.5.7.RELEASE</version> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> <configuration> <includeSystemScope>true</includeSystemScope> </configuration> </plugin> </plugins> </build>

Tengo un .jar externo que no se puede importar desde repositorios públicos usando pom.xml, es sqljdbc41.jar .

Puedo ejecutar el proyecto localmente desde mi IDE, y todo funcionará. Me referí a la biblioteca después de descargarla así:

<dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>sqljdbc41</artifactId> <version>4.1</version> <scope>system</scope> <systemPath>${basedir}/lib/sqljdbc41.jar</systemPath> </dependency>

Cuando mvn clean package para crear mi archivo .jar e intento ejecutar el .jar creado, aparecerá un error que menciona que las referencias de SQL Server no son válidas. Luego extraje mi archivo .jar y es lo suficientemente cierto, todo lo que se menciona en el archivo pom.xml se descarga y agrega correctamente, sin embargo, mi servidor SQL no lo hace.

Puedo, de una manera muy intrincada * simplemente agregar manualmente el sqljdbc41.jar a mi carpeta / lib después de que se haya compilado como un .jar, y funcionará, sin embargo, parece muy poco óptimo. ¿Cuál sería un mejor enfoque?

* Abriendo el archivo .jar con Winrar, yendo a la carpeta / lib, seleccionando manualmente mi archivo sqljdbc41.jar , luego asegúrese de seleccionar la opción Sin compresión abajo a la izquierda, donde Winrar le ofrece opciones de compresión, en caso de que encuentre esto en Google y nadie respondió.


En mi caso, la falla fue proporcionar un número de versión sin "punto" en la etiqueta:

<dependency> <groupId>jdk.tools</groupId> <artifactId>jdk.tools</artifactId> <scope>system</scope> <version>1</version> <systemPath>${basedir}/src/main/resources/lib/tools.jar</systemPath> </dependency>

Éste funciona:

<dependency> <groupId>jdk.tools</groupId> <artifactId>jdk.tools</artifactId> <scope>system</scope> <version>1.8</version> <systemPath>${basedir}/src/main/resources/lib/tools.jar</systemPath> </dependency>


Podría instalar el sqljdbc41.jar en su repositorio local:

mvn install:install-file -Dfile=path/to/sqljdbc41.jar -DgroupId=com.microsoft.sqlserver -DartifactId=sqljdbc41 -Dversion=4.1 -Dpackaging=jar

Y luego declare la dependencia como una dependencia estándar:

<dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>sqljdbc41</artifactId> <version>4.1</version> </dependency>

Si usa un repositorio de artefactos remoto (nexus, archiva ...) también necesita implementar el artefacto en este repositorio. Puede encontrar más aquí: https://maven.apache.org/guides/mini/guide-3rd-party-jars-remote.html


de otra manera, puede ponerlo en la carpeta de recursos, como resources / lib / xxx.jar, y luego configurar el pom.xml de esta manera:

<dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>sqljdbc41</artifactId> <version>4.1</version> <scope>system</scope> <systemPath>${basedir}/src/main/resources/lib/sqljdbc41.jar</systemPath>


puede establecer ''includeSystemScope'' en true.

<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <includeSystemScope>true</includeSystemScope> </configuration> </plugin>