Uso extendido de maven

Tabla de contenido

Agregar frascos que no están en el almacén central (o personalizado) al proyecto como dependencias (versión idea)

Empaquete las dependencias de jar externas/personalizadas juntas en el paquete jar


Agregar frascos que no están en el almacén central (o personalizado) al proyecto como dependencias (versión idea)

Recientemente, cuando uso hervidor para desarrollo secundario, muchas de sus dependencias ya no están en el almacén central de maven y ya no están en el servidor privado de la empresa, por lo que sigo informando errores al empaquetar proyectos:

 Pero se puede descargar al almacén local a través de dependencias , pero este error se informa al empaquetar, por lo que planeo introducir esta dependencia manualmente.

Dependencia en el sitio web oficial: Puede descargar esta dependencia localmente, pero la dependencia no se puede resolver o no se puede encontrar en el almacén cuando se informa un error al empaquetar;

        <dependency>
			<groupId>pentaho</groupId>   
			<artifactId>pentaho-s3-vfs</artifactId>    
			<version>7.1.0.12-132</version>         
		</dependency>

Primero descargue las dependencias de este jar (generalmente hay recursos en Internet), aquí no usé el modo de instalación del comando maven, sino que lo completé a través de lib dependiendo de la configuración de pom:

1. Introducir la dependencia del paquete jar en el archivo pom.xml del proyecto

<dependency>
    <groupId>pentaho</groupId>     <!-- 可以自定义 -->
    <artifactId>pentaho-s3-vfs</artifactId>    <!-- jar名称 -->
    <version>7.1.0.12-132</version>   <!-- 与jar包中定义的版本一致,如果其没有指定,那么这里可以自定义-->
    <type>jar</type>
    <scope>system</scope>
    <systemPath>${project.basedir}/src/main/resources/lib-s3/pentaho-s3-vfs-7.1.0.12-132.jar</systemPath>    <!-- 使用jar所在的绝对路径 -->
</dependency>

2. Cree un archivo lib-s3 en idea como una dependencia (coherente con la ruta anterior)

Primero cree la carpeta lib-s3 en el directorio de recursos:

Tenga en cuenta que se crea en el directorio de recursos de src : aquí lo nombré lib-s3: luego copie el paquete jar relevante en este archivo lib-s3:

 Luego establezca la dependencia de importación en la idea:

 Nota: Si no hay una opción de agregar como biblioteca, significa que los archivos en el directorio de recursos en su módulo maven pueden ser predeterminados como dependencias, y puede colocar los paquetes dependientes directamente en la carpeta que creó. Entonces mira si se puede citar.

 Actualice el archivo pom.Después del éxito , el paquete jar se puede expandir:

 Luego use maven para empaquetarlo y probarlo, y descubra que es realmente utilizable.

Empaquete las dependencias de jar externas/personalizadas juntas en el paquete jar

Recientemente, estoy aprendiendo a llevar a cabo un desarrollo secundario de hervidor. Cuando uso las clases en el código definido por mí mismo, es posible que necesite usar otros frascos externos. Sin embargo, simplemente usar maven para empaquetar no puede empaquetar los frascos correspondientes en el proyecto. Sí, entonces cuando se implementa el jar, habrá un error de que el archivo de clase dependiente no existe, por lo que el jar externo debe empaquetarse en el paquete jar:

Empaquete las dependencias externas juntas en el paquete jar:

Modificar el archivo pom:

 <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <appendAssemblyId>false</appendAssemblyId>
                    <finalName>xxx-xxx-sdk</finalName>
                    <descriptorRefs>
                        <!-- 将依赖的jar包中的class文件打进生成的jar包-->
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <!-- 可以增加main函数入口,可有可无-->
                            <mainClass>com.xxx.xxx.xxx</mainClass>
                        </manifest>
                    </archive>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>assembly</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>

Una vez finalizada la configuración, ejecute:  

Blog de referencia: el embalaje maven dependerá del paquete del frasco

Supongo que te gusta

Origin blog.csdn.net/weixin_53142722/article/details/126781342
Recomendado
Clasificación