maven加载第三方jar不能加载

这个问题处于项目组,总算是解决了。下面是一些自己的做法。

1.说明介绍

  公司现在用的是spring+maven,使用的公共maven库没有问题,但是想要把一些老的项目改造这种框架会出现一些问题。

  因为一些老的项目中有好多第三方的jar包或者是自己的jar包(尤其是这种自己的包),maven库上没有。

  最初的解决方案是一个个的deploy到maven库上,但是遇到太多的三方jar包就太费事了,同时会有一些成本问题。

  网上查了一下发现maven有一种方式可以将本地的Jar包依赖到项目中而不需要先deploy到maven库上,值得学习一下。

2.在项目中新建一个lib

  这个lib可以在项目下建,只要可以找到即可。

  不过这里讲lib目录放在src下面了,问题不大。

  

3.将jar包放进来

  

4.修改pom文件 

 <!--添加外部依赖--> basedir是自带变量,指的是当前项目的绝对路径,三围自己随便写。
<dependency>
    <groupId>ChartDirector</groupId>
    <artifactId>ChartDirector</artifactId>
    <version>1.0</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/src/lib/ChartDirector.jar</systemPath>
</dependency>

  

5.问题所在

  用mvn clean package打成jar包后运行就是报错,正式找不到这些jar包中的相关类。把jar包解压后在WEB-INF/lib里面也确实没有发现用上述方式引入的jar包,看来是没有把src/lib目录里面的jar打进去,后来通过查找也终于找到方法了。

6.修改pom文件,在build标签下增加如下配置

      <!--设置maven-war-plugins插件,否则外部依赖无法打进war包-->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <configuration>
          <webResources>
                    <resource>
                            <directory>${project.basedir}/src/lib</directory>
                            <targetPath>WEB-INF/lib/</targetPath>
                            <includes>
                                <include>**/*.jar</include>
                            </includes>
                    </resource>
          </webResources>
        </configuration>
      </plugin>

  

7.maven clean 与 install

  

8.看效果

  这个可以直接从target中看。

  

进入这个目录下,然后打开war包:

  

  

原文地址:https://www.cnblogs.com/juncaoit/p/8430657.html

时间: 2024-11-11 15:53:27

maven加载第三方jar不能加载的相关文章

解决Android Studio加载第三方jar包,出现包重复加载的问题:

通过Maven中央库添加第三方jar包的时候,出现了重复加载jar包的问题,解决办法很简单去掉一个不让它去加载就OK了 一.错误 Error:Execution failed for task ':app:dexDebug'. > com.android.ide.common.internal.LoggedErrorException: Failed to run command: F:\zsl\sdk\build-tools\21.1.2\dx.bat --dex --output F:\zs

maven项目或第三方jar发布到私服

1.第三方jar发布 例子: 打开命令行进入到maven安装目录下的bin目录,敲入如下指令,具体参考根据情况修改,下面有参数详细说明. mvn deploy: deploy-file  -DgroupId=hw.vedioicon  -DartifactId=vedioicon  -Dversion=1.0  -Dpackaging=jar  -Dfile=D:\workspace\web-mooc\src\main\webapp\WEB-INF\lib\vedioicon.jar  -Dur

maven 工程下第三方jar 包的引入和打包 war

有时我们需要第三方jar 放在lib 包下 -------位置:/WEB-INF/lib 报编译出错,此时: 然后在打包war 发现问题 pom.xml  中引入 ${basedir}为pom内置的元素 <!--maven 将lib 下包打成war 包--> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</s

IntellJ idea maven项目带有第三方jar包

今天用maven打包时,提示程序包com.aspose.slides不存在 原来第三方jar是直接导入的,打包时没找到 那项目中带有第三方jar包,怎么打包? 方法: 1.根路径建立lib包,将第三方jar复制进去 2.在pom.xml文件中 (1)dependency部分加入 <dependency> <groupId>aspose.slides</groupId> <artifactId>slides</artifactId> <ver

27 Java动态加载第三方jar包中的类

我加载的方法是://参数fileName是jar包的路径,processorName 是业务类的包名+类名public static A load(String fileName, String processorName) {            String filePath = fileName;              A processor = null;  URL url;try {  url = new URL(filePath);} catch (MalformedURLEx

maven打包成第三方jar包且把pom依赖包打入进来

<build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <archive> <manifest> <mainClass>com.allen.capturewebdata.Main</mainClass> </manifest> </archive&

maven 上传第三方jar

宿主库——3rd party 假如我们下载了Oracle的驱动程序jar包想给其他项目组使用,就需要上传该jar包.选中宿主库——3rd party,之后选择Artifact Upload上传至宿主空间. 怎样得到一个jar包准确的版本呢? 解压该包,会发现一个叫MANIFEST.MF的文件,这个文件就有描述该包的版本信息. 比如Manifest-Version: 1.0可以知道该包的版本了.

maven手工添加第三方jar包

在cmd输入框中输入如下命令: mvn install:install-file -Dfile=D:\soft\apache-maven-3.2.3\repository\tedis-core.jar -DgroupId=com.tedis -DartifactId=tedis -Dversion=1.0 -Dpackaging=jar -DgeneratePom=true D:\soft\apache-maven-3.2.3\repository\tedis-core.jar 为jar包存放地

groovy+idea+Maven项目加载自身jar包

<dependency> <groupId>fishman</groupId> <artifactId>JMJ_API</artifactId> <version>1.0</version> <scope>system</scope> <systemPath>${project.basedir}/lib/JMJ_API.jar</systemPath> </depend