笔者进行性能测试时,碰到如下问题

性能测试代码编写,调试通过之后。使用cmd进入项目根目录,意图打包导出项目中所有的依赖包,以便导入至jmeter工具中

cmd中使用命令:mvn dependency:copy-dependencies -DoutputDirectory=lib 。具体报错信息如下:

根据报错信息可看出,四个jar包没有可用的dependency信息。随后返回项目中查看四个jar包的dependency,发现一切正常。再次运行了项目,发现能够正常运行,并未任何报错信息。
为了进一步排除代码问题。将代码在另外一台机器执行,执行命令:mvn dependency:copy-dependencies -DoutputDirectory=lib  则完全ok

经过以上操作后,通过分析,基本把问题定位在maven工具上。因为相同代码,不同机器上的执行结果不同,那么只能是maven工具问题。

然后比对了两台机器上的maven,发现版本,配置文件均一致。

这让我陷入了思考:代码,工具均一致,结果却完全不同。根据报错信息能看出,输出依赖包时,maven并未找到有效的jar包信息。那么maven识别有效的jar包信息,是根据配置文件来的,但两台机器的配置文件完全一致。那么很有可能,就是配置文件的路径问题

想到这里,使用mvn -X查看debug日志,发现maven在读取配置文件时,优先读取maven环境变量配置的那个settings配置文件,而这个配置文件就是在%MAVEN_HOME%\conf\目录下。对比了两台机器,发现出错的那台机器上,安装包下的/conf/settings.xml文件中是最原始的文件(即没有任何配置信息),而IDEA中配置的是D:maven/settings.xml。至此,问题找到

解决方案很简单,把可用的D:maven/settings.xml拷贝至%MAVEN_HOME%\conf\下,替换掉原来不可用的settings.xml,再次执行mvn dependency:copy-dependencies -DoutputDirectory=lib。执行成功

后记:

1.maven使用命令在输出依赖包时,有先寻找的是%MAVEN_HOME%\conf\settings.xml,当这个文件不存在或者是无效配置时,则再寻找 C:\Users\XXX\.m2\settings.xml,如果还是无效或不存在,则报错

2.maven在IDEA中则根据配置来。默认是C:\Users\XXX\.m2\settings.xml。实际上很多使用人员都会修改该路径到其他目录

建议:要么直接使用默认路径:C:\Users\XXX\.m2\settings.xml;要么使用%MAVEN_HOME%\conf\settings.xml。

3.至于本地仓库位置,可根据自己喜好,配置在settings.xml中即可

The pom for XXX is missing,no dependency information available的更多相关文章

  1. Maven打包报错:[WARNING] The POM for xxx is missing, no dependency inform

    maven install 或 package 时 ,执行警告报错: [WARNING] The POM for com.xx-base:jar:1.0 is missing, no dependen ...

  2. The POM for XXX:jar:${com.ld.base.service.version} is missing, no dependency information available

    最近有个jar改了名字后,有个依赖它的工程死活引用的是老名字,导致打包的时候出错,如下所示: [INFO] ---------------------------------------------- ...

  3. The POM for cn.e3mall:e3mall-common:jar:0.0.1-SNAPSHOT is missing, no dependency information available

    [WARNING] The POM for cn.e3mall:e3mall-common:jar:0.0.1-SNAPSHOT is missing, no dependency informati ...

  4. Failed to execute goal on project MakeFriends: Could not resolve dependencie The POM for .chengpai.jtd:jtd-service-api:jar:1.0-SNAPSHOT is missing, no dependency information available

    本笔者在学习maven的基础,然后建立了一个maven的项目,然后想对其进行依赖操作,pom.xml进行依赖操作时候出现了这样的错误,说是找不到这个依赖的包,但是事实上已经导入了这个包. 同时,也在m ...

  5. The POM for ... is missing, no dependency information available

    今天在重温淘淘商城的项目,准备用idea重写次,换个bootstrap的前端框架,但是在用idea构建maven项目后编译时却报错了: 经再三确认,common工程自身并没有任何问题,引用这个工程的地 ...

  6. files list file for package 'xxx' is missing final newline

    #!/usr/bin/python # 8th November, 2009 # update manager failed, giving me the error: # 'files list f ...

  7. The POM for XXX is invalid, transitive dependencies (if any) will not be available解决方案

    今天,某个开发的环境在编译的时候提示警告The POM for XXX is invalid, transitive dependencies (if any) will not be availab ...

  8. Description Resource Path Location Type Missing artifact com.********:framework:jar:1.0.2 pom.xml /项目名 line **** Maven Dependency Problem

    问题具体描述如下图所示: 对于该问题本人是这么解决的. 在window下[Preferences]目录找到[Maven]下的[usersetting] 查看local repository 里面的路径 ...

  9. maven编译问题之 -The POM for XXX is invalid, transitive dependencies (if any) will not be available

    问题一: 把父工程tao-parent install 到maven本地仓后,接着install tao-common工程,然后报错 报错信息如下: [WARNING] The POM for com ...

随机推荐

  1. 脚本shell

    vim删除以#,空格开头的行   1,删除以#号开头的行: :g/^#/d :%s/^#.*\n 2,删除以空格开头的行: :g/^\s/d                “\s代表空格” :%s/^ ...

  2. 用js刷剑指offer(栈的压入、弹出序列)

    题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压 ...

  3. JS与小程序页面生命周期

    Page({ /** * 页面的初始数据 */ data: { }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { }, /** * 生命周 ...

  4. Codeforces #367 (Div. 2) D. Vasiliy's Multiset (trie 树)

    http://codeforces.com/group/1EzrFFyOc0/contest/706/problem/D 题目:就是有3种操作 + x向集合里添加 x - x 删除x元素,(保证存在 ...

  5. Codeforces 1206 D - Shortest Cycle

    D - Shortest Cycle 思路:n大于某个值肯定有个三元环,否则floyd找最小环. 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) ...

  6. P1967 货车运输[生成树+LCA]

    题目描述 A国有n座城市,编号从 1到n,城市之间有 m 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 q* 辆货车在运输货物, 司机们想知道每辆车在不超过车辆限重的情况下,最多能运多重 ...

  7. c++之:new与malloc

    #include <iostream> using namespace std; void spacealloc_c() { //开辟内存空间---C语言风格 int *p = (int ...

  8. js中使用Switch

    语法 switch(n) { case 1: 执行代码块 1 break; case 2: 执行代码块 2 break; default: n 与 case 1 和 case 2 不同时执行的代码 } ...

  9. [GraphQL] Reuse GraphQL Selection Sets with Fragments

    Fragments are selection sets that can be used across multiple queries. They allow you to refactor re ...

  10. git merge 及 git rebase的区别

    Git上合并代码有git merge 及 git rebase 两种方式. 前置知识点 Master分支:首先,代码库应该有一个.且仅有一个主分支.所有提供给用户使用的正式版本,都在这个主分支上发布. ...