gpt4 book ai didi

java - 如何修复 "import com.dyuproject cannot be resolved"错误

转载 作者:行者123 更新时间:2023-12-01 11:29:27 25 4
gpt4 key购买 nike

我对 Java 相当陌生,尤其是 Maven,特别是 protostuff 项目 ( protostuff website )。我需要使用 protostuff 将 XML 序列化/反序列化为 google 的 protobuf 格式。我尝试使用 protobuf-java-format包,但反序列化中有一个已记录的错误,这对我来说是一个阻碍( issue 37 )。

到目前为止,我已完成以下操作:

  1. 下载了 protostuff-1.3.1 并解压。
  2. 运行 mvn Integration-testmvn installmvn package,所有步骤均成功。
  3. 然后,我创建了一个新的 Maven 项目,并包含了一个原型(prototype),如 here 所示。
  4. 然后,我修改了 pom.xml 并在原型(prototype)上运行了 protostuff:compile,如 aforementioned link 中所述。 ,生成如下Person.java文件

    // Generated by http://code.google.com/p/protostuff/ ... DO NOT EDIT!
    // Generated from foo.proto

    package com.example.foo;

    import java.io.Externalizable;
    import java.io.IOException;
    import java.io.ObjectInput;
    import java.io.ObjectOutput;

    import com.dyuproject.protostuff.ByteString;
    import com.dyuproject.protostuff.GraphIOUtil;
    import com.dyuproject.protostuff.Input;
    import com.dyuproject.protostuff.Message;
    import com.dyuproject.protostuff.Output;
    import com.dyuproject.protostuff.Schema;
    import com.dyuproject.protostuff.UninitializedMessageException;

    public final class Person implements Externalizable, Message<Person>, Schema<Person>
    {
    public enum Gender implements com.dyuproject.protostuff.EnumLite<Gender>
    {
    MALE(1),
    FEMALE(2);

    public final int number;

    private Gender (int number)
    {
    this.number = number;
    }

    public int getNumber()
    {
    return number;
    }

    public static Gender valueOf(int number)
    {
    switch(number)
    {
    case 1: return MALE;
    case 2: return FEMALE;
    default: return null;
    }
    }
    }


    public static Schema<Person> getSchema()
    {
    return DEFAULT_INSTANCE;
    }

    public static Person getDefaultInstance()
    {
    return DEFAULT_INSTANCE;
    }

    static final Person DEFAULT_INSTANCE = new Person();

    static final String DEFAULT_MOTTO = ByteString.stringDefaultValue("When the cat is away, the mouse is alone!");
    static final Gender DEFAULT_GENDER = Gender.MALE;

    private Integer id;
    private String name;
    private String motto = DEFAULT_MOTTO;
    private Gender gender;

    public Person()
    {

    }

    public Person(
    Integer id
    )
    {
    this.id = id;
    }

    // getters and setters

    // id

    public Integer getId()
    {
    return id;
    }

    public void setId(Integer id)
    {
    this.id = id;
    }

    // name

    public String getName()
    {
    return name;
    }

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

    // motto

    public String getMotto()
    {
    return motto;
    }

    public void setMotto(String motto)
    {
    this.motto = motto;
    }

    // gender

    public Gender getGender()
    {
    return gender == null ? Gender.MALE : gender;
    }

    public void setGender(Gender gender)
    {
    this.gender = gender;
    }

    // java serialization

    public void readExternal(ObjectInput in) throws IOException
    {
    GraphIOUtil.mergeDelimitedFrom(in, this, this);
    }

    public void writeExternal(ObjectOutput out) throws IOException
    {
    GraphIOUtil.writeDelimitedTo(out, this, this);
    }

    // message method

    public Schema<Person> cachedSchema()
    {
    return this;
    }

    // schema methods

    public Person newMessage()
    {
    return new Person();
    }

    public Class<Person> typeClass()
    {
    return Person.class;
    }

    public String messageName()
    {
    return Person.class.getSimpleName();
    }

    public String messageFullName()
    {
    return Person.class.getName();
    }

    public boolean isInitialized(Person message)
    {
    return
    message.id != null;
    }

    public void mergeFrom(Input input, Person message) throws IOException
    {
    for(int number = input.readFieldNumber(this);; number = input.readFieldNumber(this))
    {
    switch(number)
    {
    case 0:
    return;
    case 1:
    message.id = input.readInt32();
    break;
    case 2:
    message.name = input.readString();
    break;
    case 3:
    message.motto = input.readString();
    break;
    case 4:
    message.gender = Gender.valueOf(input.readEnum());
    break;
    default:
    input.handleUnknownField(number, this);
    }
    }
    }


    public void writeTo(Output output, Person message) throws IOException
    {
    if(message.id == null)
    throw new UninitializedMessageException(message);
    output.writeInt32(1, message.id, false);

    if(message.name != null)
    output.writeString(2, message.name, false);

    if(message.motto != null && message.motto != DEFAULT_MOTTO)
    output.writeString(3, message.motto, false);

    if(message.gender != null)
    output.writeEnum(4, message.gender.number, false);
    }

    public String getFieldName(int number)
    {
    switch(number)
    {
    case 1: return "id";
    case 2: return "name";
    case 3: return "motto";
    case 4: return "gender";
    default: return null;
    }
    }

    public int getFieldNumber(String name)
    {
    final Integer number = __fieldMap.get(name);
    return number == null ? 0 : number.intValue();
    }

    private static final java.util.HashMap<String,Integer> __fieldMap = new java.util.HashMap<String,Integer>();
    static
    {
    __fieldMap.put("id", 1);
    __fieldMap.put("name", 2);
    __fieldMap.put("motto", 3);
    __fieldMap.put("gender", 4);
    }

    }

我正在 Eclipse(Luna 版本)中构建整个项目,它给出了上述文件的错误“import com.dyuproject 无法解析”。我不明白为什么它会给出错误或如何查找/安装包以便 Eclipse 可以看到它。 Maven 应该构建/提供这个吗?

我在 VirtualBox VM 上运行 CentOS 版本 6.4(最终版):

uname -a
Linux localhost.localdomain 2.6.32-358.18.1.el6.x86_64 #1 SMP 8 月 28 日星期三 17:19:38 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
`

最佳答案

看来您使用的是不兼容的 protostuff-coreprotostuff-maven-plugin 版本。

从版本1.1开始,protostuff使用包io.protostuff而不是com.dyuproject.protostuff。 Protostuff依赖版本和protostuff maven插件版本应该相同(1.3.5是最新版本)。

Here是一个使用 protostuff-maven-plugin 进行代码生成的 Maven 项目示例。

关于java - 如何修复 "import com.dyuproject cannot be resolved"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30535255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com