Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何解决maven编译错误:包X不存在?_Java_Eclipse_Maven_Pom.xml_Spring Tool Suite - Fatal编程技术网

Java 如何解决maven编译错误:包X不存在?

Java 如何解决maven编译错误:包X不存在?,java,eclipse,maven,pom.xml,spring-tool-suite,Java,Eclipse,Maven,Pom.xml,Spring Tool Suite,我有3个maven项目: project-A project-B project-C 第二个项目(B)需要第一个项目(A)的依赖关系。 第三个项目(C)需要第一个和第二个项目(A,B)的依赖关系。 我在各自的项目pom文件中定义了这些依赖项: project-B pom.xml: <dependency> <groupId>com.mygroupid</groupId> <artifactId>projec

我有3个maven项目:

project-A
project-B
project-C
第二个项目(B)需要第一个项目(A)的依赖关系。 第三个项目(C)需要第一个和第二个项目(A,B)的依赖关系。 我在各自的项目
pom
文件中定义了这些依赖项:
project-B pom.xml

    <dependency>
        <groupId>com.mygroupid</groupId>
        <artifactId>project-A</artifactId>
        <version>${project.version}</version>
    </dependency>
    <dependency>
        <groupId>com.mygroupid</groupId>
        <artifactId>project-A</artifactId>
        <version>${project.version}</version>
    </dependency>
    <dependency>
        <groupId>com.mygroupid</groupId>
        <artifactId>project-B</artifactId>
        <version>${project.version}</version>
    </dependency>
SpringToolSuite
上一切正常。我已经测试了第二个项目(取决于第一个项目),也测试了第三个项目(取决于第一个和第二个项目),STS的一切正常

当我尝试执行时: mvn清理安装-U-DskipTests=true

它对于
project-A
project-B
非常有效,但是对于
project-C
我得到了一个:

[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] MyClassOnProjectC.java:[12,38] package XXX does not exist
[ERROR] MyClassOnProjectC.java:[22,17] cannot find symbol
  symbol:   class MyClassOnProjectB
  location: class MyClassOnProjectC
以下是从每个项目中提取的3个类:

project-A
project-B
project-C
项目A: User.java

package com.neweraed.datamodel;

import java.io.Serializable;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlType;

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "UserType", propOrder = {
    "name",
    "description",
})
public class User  implements Serializable {    
    private static final long serialVersionUID = -876063526825526098L;

    private String name;
    private String description;

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

}
项目B: UserOperations.java

package com.neweraed.services.midpoint;

import java.util.List;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestOperations;

import com.neweraed.datamodel.User;
import com.neweraed.services.midpoint.utils.Constants;
import com.neweraed.services.midpoint.utils.Utils;

@Component
public class UserOperations {

    private static final Logger logger = LoggerFactory.getLogger(UserOperations.class);

    public User getUser(User user) {
        RestOperations restOperations = Utils.createGenericRestTemplate();
        ResponseEntity<User> response = null;
        try {
            response = restOperations.exchange(Constants.ENDPOIT_SEARCH_USER, HttpMethod.GET, new HttpEntity<Object>(Utils.createHeaders()), User.class);

            logger.info("=== RESPONSE ===" + response + " === ");
        } catch (Exception e) {
            logger.error("=== ERROR === " + e.getMessage() + " === ");
        }
        return user;
    }
}

我的pom.xml文件似乎一切正常。我怎样才能解决这个问题

根据您的前提,项目B的
pom.xml
必须是:

<dependency>
    <groupId>com.mygroupid</groupId>
    <artifactId>project-A</artifactId>
    <version>${project.version}</version>
</dependency>

com.mygroupid
项目A
${project.version}

项目C不需要依赖于A,因为它是在B上定义的

Yes correct。我尝试从project-C的pom.xml中删除project-A的依赖项并重新执行该命令,但我得到了相同的错误A和B的包装类型是pom?否,A和B的打包类型是JAR,没有项目的更多细节,我会尝试将它们更改为pom,并且执行clean install命令againI解决了将三个项目的打包类型更改为pom的问题