maven中怎么添加jar包不生效

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了maven中怎么添加jar包不生效相关的知识,希望对你有一定的参考价值。

首先,检查包是否版本覆盖,比如slf4j,某些依赖于高版本,你自己选低版本,那么会被它覆盖掉。
其次,netbeans有个比较特殊地方,它与IDEA类似,配完pom.xml后,需要右键该文件选择update dependencies(Eclipse内名称,netbean已卸载不清楚,更新项目依赖)才会开始下载依赖的jar包。
再则,你用的maven仓库是私服还是官服?私服的话(sonatype-nexus),有些最新包是加载不到的。
最后,如果上述描述的问题都不存在,可仔细看下控制台输出的错误信息,以便对症下药。
参考技术A 在pom.xml中添加对应的依赖代码后,如果jar包不生效,先去查看一下。maven本地的仓库中,是否正常的把jar包从maven库中 下载下来了。有时会因为网络原因,并没有下载完全,因为有这样的文件(无论是否下载完整,只要是有这个文件,maven就不会再更新),你再次更新时,他就不会再进行下载,所以要把本地库中对应的jar包的文件夹删除 ,再进行下载,有时,可能会进行多次这样的操作。
确定了 maven本地仓库中的jar包是正确后,再对工程里的jar进行刷新,和清理。
应该就可以了。。你试试。。
参考技术B  <dependency>
            <groupId>com.xxxxxx</groupId>
            <artifactId>xxxxxx</artifactId>
            <version>1.0.0</version>
        </dependency>

pom文件是不是没写对啊 或者maven 库里没有 这个文件 

添加maven jar 包需要配置pom文件 不过单独添加也是可以的 ,

参考技术C 可以在pom.xml里面配呀,配上之后保存,然后maven updateproject,然后把jar把加载上,.m2就有了

<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
</dependency>

<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
</dependency>
<dependency>
<groupId>org.tuckey</groupId>
<artifactId>urlrewritefilter</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-json-plugin</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</dependency>
<dependency>
<groupId>javassist</groupId>
<artifactId>javassist</artifactId>
</dependency>

<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>3.1.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>3.1.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
</dependency>

<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-sitemesh-plugin</artifactId>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-spring-plugin</artifactId>
</dependency>
<dependency>
<groupId>jexcelapi</groupId>
<artifactId>jxl</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-contrib</artifactId>
<version>3.7-beta3</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-examples</artifactId>
<version>3.8</version>
</dependency>
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.2.4</version>
</dependency>
参考技术D

从maven仓库 http://mvnrepository.com/ 查找对应的jar包和对应的版本,打开详情

将上图的红框里标记的内如粘贴到maven工程的pom.xml文件中 maven

就会自动从远程拉去jar包

IDEA使用Maven工具打包带有外部jar包时出错 - 提示程序包不存在和找不到符号

坑向:关于IDEA中使用Maven工具打包 具有外部实体jar包作依赖时 出现程序包xxx不存在和找不到符号错误的探究

致谢: Qshadow (DOSKEY_jason)

1 环境描述

1.1 开发环境: IDEA-2018.3

1.2 新建的项目结构: 父空项目(EmptyProject)下带有1个子Maven项目


2 业务需求(工作目标)

为带有外部jar包作依赖的子项目(NCDemo),使用maven工具打包,如下图所示。
子项目使用外部jar包,现在需要打包子项目生成新的一个jar包。

3 子项目中准备的外部jar包

3.1 子项目中使用的jar包名

netcdfAll-5.4.1.jar

物理路径:D:\\EmptyProject\\NCDemo\\lib\\netcdfAll-5.4.1.jar

3.2 子项目中引入外部实体jar包作 依赖

3.3 jar实体引入成功,同时相关代码加载成功(import jar包中的类不爆红)

4 为成功引入外部依赖的子项目NCDemo进行打包 (出现问题)

使用IDEA的Maven工具,进行clean和package操作

4.1 Maven工具界面,clean和package操作

4.2 对其使用package操作后报错:找不到程序包和符号!

但是IDEA中明明已经引入成功了外部jar包的依赖,见步骤3.3

5 已经引入外部jar后 Maven打包时仍找不到程序包的 解决方案

5.1 对子项目NCDemo的pom文件进行修改,让Maven工具识别需要的外部jar包

为pom文件配置本地的jar包。
其中groupId,artifactId,version可以任意取。

	<dependencies>
        <!--添加的本地的外部jar包依赖-->
        <dependency>
            <groupId>netcdf</groupId>
            <artifactId>ucar</artifactId>
            <version>4.6.15</version>
            <scope>system</scope>
            <systemPath>$project.basedir/lib/netcdfAll-5.4.1.jar</systemPath>
        </dependency>
    </dependencies>

5.2 再次clean后进行package命令,打包NCDemo子项目

在需要打包的子项目中,对外部依赖的jar包配置pom文件中的依赖后。 打包成功!

6 总结

在IDEA中 project structure 为子项目 NCDemo添加 jar包依赖 只是为了让IDEA环境识别使用的外部jar包。(未让Maven工具识别该外部jar包)

在子项目的pom.xml文件中为其添加本地jar包的依赖(步骤5.1),是为了让Maven工具识别该jar包。

即:IDEA识别外部jar包 与 Maven工具识别外部jar包是独立的,他们是两回事。

同时,Maven项目的pom.xml文件,不仅可以配置远程仓库的依赖(如阿里云镜像),也可以配置本地的jar包依赖。(步骤5.1)

7 注意事项

在IDEA中使用内部Maven工具,对本地jar包成功引入当前环境,使Maven识别后,

在部署项目时 仍然会提示找不到本地依赖包中某个类

原因是本地jar包只是被当前IDEA环境中的Maven识别,但实际未被打入生成的jar包中

具体解决方法参见

代码指定需要打入 最终生成jar包的 本地外部jar包

以上是关于maven中怎么添加jar包不生效的主要内容,如果未能解决你的问题,请参考以下文章

springboot引入的第三方jar包是怎么生效的

java程序包org.json不存在

maven怎么添加依赖

gradle 添加jar依赖,执行grade build时出现“程序包不存在”问题

IDEAIDEA中maven项目pom.xml依赖不生效解决

一次解决idea maven settings.xml文件不生效