求助maven多项目中的引用问题

XuanrenLu 2016-08-06 12:41:53
我想学习构建多项目,项目study-inherit 继承 study-modules(此包含一个study-module-a项目),现在我想在study-inherit项目代码中引入study-module-a项目的类:ClassA,结果eclipse提示我无法解析ClassA
项目结构


study-inherit pom
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.luxuanren.study</groupId>
<artifactId>study-modules</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>study-inherit</artifactId>
<name>study-inherit</name>
<description>study-inherit</description>
</project>

study-modules pom
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.luxuanren.study</groupId>
<artifactId>study-modules</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>


<modules>
<module>../study-module-a</module>
</modules>
</project>

study-module-a pom
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>study-module-a</artifactId>
<name>study-module-a</name>
<description>study-module-a</description>
<parent>
<groupId>com.luxuanren.study</groupId>
<artifactId>study-modules</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../study-modules</relativePath>
</parent>
</project>

study-module-a 的ClassA
package com.luxuanren.study.modules;

public class ClassA {
public void print() {
System.out.println("ClassA in module A");
}
}

study-inherit 的测试代码
package com.luxuanren.study.modules;

public class Test {

public static void main(String[] args) {
// new ClassA.print();
}

}
...全文
184 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
missMeyo 2016-08-06
  • 打赏
  • 举报
回复
引用 6 楼 lxr0724 的回复:
[quote=引用 5 楼 missMeyo 的回复:] [quote=引用 4 楼 lxr0724 的回复:] [quote=引用 3 楼 missMeyo 的回复:] 另外一个项目要引入依赖呀。
这样可以解析到ClassA了,但是eclipse报错:Description Resource Path Location Type Project 'study-inherit' is missing required Java project: 'study-modules' [/quote]你用maven 就不要互相引用项目了。[/quote] 那我这样的情况,应该怎么声明依赖呢?[/quote]处理好项目报错应该就没问题了。
XuanrenLu 2016-08-06
  • 打赏
  • 举报
回复
引用 5 楼 missMeyo 的回复:
[quote=引用 4 楼 lxr0724 的回复:] [quote=引用 3 楼 missMeyo 的回复:] 另外一个项目要引入依赖呀。
这样可以解析到ClassA了,但是eclipse报错:Description Resource Path Location Type Project 'study-inherit' is missing required Java project: 'study-modules' [/quote]你用maven 就不要互相引用项目了。[/quote] 那我这样的情况,应该怎么声明依赖呢?
missMeyo 2016-08-06
  • 打赏
  • 举报
回复
引用 4 楼 lxr0724 的回复:
[quote=引用 3 楼 missMeyo 的回复:] 另外一个项目要引入依赖呀。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.luxuanren.study</groupId>
    <artifactId>study-modules</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <artifactId>study-inherit</artifactId>
  <name>study-inherit</name>
  <description>study-inherit</description>
  
  <dependencies>
  	<dependency>
  		<groupId>com.luxuanren.study</groupId>
  		<artifactId>study-modules</artifactId>
  		<version>0.0.1-SNAPSHOT</version>
  	</dependency>
  </dependencies>
  
</project>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.luxuanren.study</groupId>
  <artifactId>study-modules</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>pom</packaging>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  
  
  <modules>
  	<module>../study-module-a</module>
  </modules>
  
  <dependencies>
  	<dependency>
  		<groupId>com.luxuanren.study</groupId>
  		<artifactId>study-module-a</artifactId>
  		<version>0.0.1-SNAPSHOT</version>
  	</dependency>
  </dependencies>
</project>
这样可以解析到ClassA了,但是eclipse报错:Description Resource Path Location Type Project 'study-inherit' is missing required Java project: 'study-modules' [/quote]你用maven 就不要互相引用项目了。
XuanrenLu 2016-08-06
  • 打赏
  • 举报
回复
引用 3 楼 missMeyo 的回复:
另外一个项目要引入依赖呀。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.luxuanren.study</groupId>
    <artifactId>study-modules</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <artifactId>study-inherit</artifactId>
  <name>study-inherit</name>
  <description>study-inherit</description>
  
  <dependencies>
  	<dependency>
  		<groupId>com.luxuanren.study</groupId>
  		<artifactId>study-modules</artifactId>
  		<version>0.0.1-SNAPSHOT</version>
  	</dependency>
  </dependencies>
  
</project>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.luxuanren.study</groupId>
  <artifactId>study-modules</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>pom</packaging>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  
  
  <modules>
  	<module>../study-module-a</module>
  </modules>
  
  <dependencies>
  	<dependency>
  		<groupId>com.luxuanren.study</groupId>
  		<artifactId>study-module-a</artifactId>
  		<version>0.0.1-SNAPSHOT</version>
  	</dependency>
  </dependencies>
</project>
这样可以解析到ClassA了,但是eclipse报错:Description Resource Path Location Type Project 'study-inherit' is missing required Java project: 'study-modules'
missMeyo 2016-08-06
  • 打赏
  • 举报
回复
另外一个项目要引入依赖呀。
XuanrenLu 2016-08-06
  • 打赏
  • 举报
回复
引用 1 楼 missMeyo 的回复:
study-inherit可以study-module-a install后的jar,这样子就能编译了。
我mvn install study-modules ,在仓库里面也找到了生成的study-modules的pom,和study-module-a的jar,然后study-inherit里面的测试代码还是报错。
missMeyo 2016-08-06
  • 打赏
  • 举报
回复
study-inherit可以study-module-a install后的jar,这样子就能编译了。

81,095

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧