记一次maven项目引用不到子项目jar包的问题

最近碰到问题 :web项目引用biz项目  ,启动时报错如下

 Cannot find class [com.aa.service.inf.kms.client.DataSource] for bean with name 'DataSource' defined in URL [jar:file:/Users/aa/eclipse-workspace-new/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/A/WEB-INF/lib/B-1.0-SNAPSHOT.jar!/conf/spring/context.xml]; nested exception is java.lang.ClassNotFoundException: com.aa.service.inf.kms.client.DataSource
	at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1391) ~[spring-beans-4.3.18.RELEASE.jar:4.3.18.RELEASE]

分析可能性有以下几中:

1、biz项目中的pom是不是有引入这个包,web项目的lib文件夹下边是否能下载下来这个包(java-client-0.7.6)

2、是否之前已经引入过包(java-client-0.6.1)和当前biz引入的包(java-client-0.7.6)产生版本冲突eclipse中解决方案

(1)直接使用maven命令:

dependency:tree -Dverbose

(2)直接搜索:

3、父项目用effective pom模式查看发现包(java-client-0.6.1)的版本(如下图)和当前biz引入版本(java-client-0.7.6)不一致,至于为什么父项目出现java-client-0.6.1这个版本我目前也没搞明白

解决方案为直接在父项目中引入版本(java-client-0.7.6)覆盖之前的版本(java-client-0.6.1)然后再在子项目biz中引用改版本(java-client-0.7.6)具体配置如下:

父项目中引用代码:

            <dependency>
             <groupId>com.aa.service.inf</groupId>
			 <artifactId>java-client</artifactId>
			 <version>0.6.7</version>
 			</dependency>

子项目中引用代码:版本号默认继承父项目版本0.6.7

        <dependency>
			 <groupId>com.aa.service.inf</groupId>
			 <artifactId>kms-java-client</artifactId>		 
 		</dependency>

 

4、web项目引入biz项目的时候,biz项目是否将该包排除在外(我犯的脑残问题就是这个)排查错误方式为:直接看web项目的lib下边能不能下载到java-client-0.6.7的包

  <dependency>
            <groupId>com.aa.finance.ebs</groupId>
            <artifactId>biz</artifactId>
            <exclusions>
                 <exclusion>
                	<groupId>com.aa.service.inf</groupId>
                	<artifactId>java-client</artifactId>
                </exclusion> 
            </exclusions>
        </dependency>

 

在vue中实现树状点击子集获取父级的父级id,可以通过以下步骤实现: 1. 定义一个树形数据,在该数据中含每个节点的id、父级id、子节点等信息。 2. 前端页面通过v-for循环该树形数据,并通过v-if判断当前节点是否为父节点。 3. 定义一个方法getFatherId,该方法需要传入当前节点的id。 4. 在该方法中,通过循环遍历这个树形数据,查当前节点的父节点的父节点,直到到最上层的父节点并返回其id信息。 代码示例: ```html <template> <div> <ul> <li v-for="item in treeData" v-if="item.parentId === null"> {{ item.name }} <ul> <li v-for="child in item.children" @click="getFatherId(child.id)"> {{ child.name }} </li> </ul> </li> </ul> </div> </template> ``` ```js export default { data() { return { treeData: [{id: 1, name: '一级分类1', parentId: null, children: [ {id: 2, name: '二级分类1-1', parentId: 1, children: [ {id: 3, name: '三级分类1-1-1', parentId: 2}, {id: 4, name: '三级分类1-1-2', parentId: 2} ] } ] }, {id: 5, name: '一级分类2', parentId: null, children: [ {id: 6, name: '二级分类2-1', parentId: 5, children: [ {id: 7, name: '三级分类2-1-1', parentId: 6}, {id: 8, name: '三级分类2-1-2', parentId: 6} ] } ] } ] } }, methods: { getFatherId(id) { let parent = this.treeData.find(item => item.children.find(c => c.id === id)); if (parent) { let grandParent = this.treeData.find(item => item.children.find(c => c.id === parent.id)); if (grandParent) { console.log('grandParent id:', grandParent.id); return grandParent.id; } } } } } ``` 在以上代码中,treeData是一个嵌套的树形数据,通过v-for循环遍历该数据获取每个节点的信息,在getFatherId方法中通过循环遍历该数据查当前节点的父节点的父节点,直到到最上层的父节点并返回其id信息。最后在前端页面中绑定该方法,当用户点击节点时,通过调用该方法获取该节点所在的最上层节点的id信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值