maven的扩展使用

目录

把不在中央仓库(或者是自定义)的jar加入到项目中作为依赖(idea版)

把外部/自定义的jar依赖一起打包进jar包


把不在中央仓库(或者是自定义)的jar加入到项目中作为依赖(idea版)

最近在使用kettle进行二次开发的时候,里面有很多依赖都已经不在maven的中央仓库了,而且也不再公司的私服,,所以在进行项目打包的时候一直报错:

 但是通过依赖又可以下载到本地仓库中,但是打包的时候就是报这个错,所以打算手动的引入这个依赖。

官网的依赖:可以把这个依赖下载到本地,但是打包的时候依赖解析不了或者是在报错在仓库中找不到;

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

先下载这个jar的依赖(网络上一般都是有资源的),这里我没有使用maven的命令安装模式,而是通过lib依赖于pom配置来完成的:

1、在项目的pom.xml文件中引入该jar包依赖

<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、在idea创建lib-s3文件作为依赖(与上面的路径保持一致)

先在resource目录创建lib-s3文件夹:

注意是在src的resource目录下创建:这里我是命名为lib-s3:然后把相关的jar包复制到这个lib-s3文件:

 然后在idea中设置引入依赖:

 注意:如果没有add as library这个选项,那说明你这个maven模块中的resource目录下的文件可能是被默认为依赖,你可以把依赖包直接放到你创建的文件夹就行。然后看看可不可以被引用。

 刷新pom文件,成功后这个jar包是可以展开的:

 然后使用maven打包测试一下,发现确实是可以使用了。

把外部/自定义的jar依赖一起打包进jar包

最近在学习对kettle进行二次开发,在使用自己定义的代码中的类的时候,可能需要使用到一些其他外部的jar,但是单纯使用maven来进行打包,是不能把对应的jar打包进项目中的,所以部署jar的时候就会出现依赖的class文件不存在的错误,所以需要把外部的jar一起打包进入jar包:

把外部依赖一起打包到jar包中:

修改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>

配置完成后,再执行:  

参考博客:maven 打包将依赖打进jar包_xzyxcy的博客-CSDN博客_maven打包的时候将依赖的jar包也打进去

猜你喜欢

转载自blog.csdn.net/weixin_53142722/article/details/126781342