Создание JAR-файлов из классов Java и реализация через GWT - PullRequest
0 голосов
/ 21 сентября 2011

Я создал следующий универсальный класс (и несколько пользовательских виджетов) и хочу сделать две вещи:

1) экспортировать в JAR для переносимости

2) импортировать и использовать этоJAR в моем проекте GWT

Как мне это сделать?Нужно ли включать другие элементы (например, зависимости), когда я щелкаю правой кнопкой мыши -> экспортировать класс (ы) в Eclipse?

import java.io.Serializable;
import com.google.gwt.user.client.ui.HasValue;

public class MinMaxAvg<T> extends HasValueConcrete<MinMax<T>> implements HasValue<MinMax<T>>, Serializable {

    private static final long serialVersionUID = -54806010801403294L;
    private T min;
    private T max;
    private T avg;

    public MinMaxAvg() {
        super();
    }

    public MinMaxAvg(T min, T max, T avg) {
        super();
        this.min = min;
        this.max = max;
        this.avg = avg;
    }

    public MinMaxAvg(MinMaxAvg<T> rhs) {
        super();
        if (rhs != null) {
            this.min = rhs.min;
            this.max = rhs.max;
            this.avg = rhs.avg;
        }
    }

    public T getMin() {
        return min;
    }

    public void setMin(T min) {
        this.min = min;
    }

    public T getMax() {
        return max;
    }

    public void setMax(T max) {
        this.max = max;
    }

    public T getAvg() {
        return avg;
    }

    public void setAvg(T avg) {
        this.avg = avg;
    }

    public boolean hasMin() {
        return min != null;
    }

    public boolean hasMax() {
        return max != null;
    }

    public boolean hasAvg() {
        return avg != null;
    }

    @Override
    public MinMax<T> getValue() {
        return new MinMax<T>(min, max);
    }

    @Override
    public void setValue(MinMax<T> value) {
        min = value.getMin();
        max = value.getMax();
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((avg == null) ? 0 : avg.hashCode());
        result = prime * result + ((max == null) ? 0 : max.hashCode());
        result = prime * result + ((min == null) ? 0 : min.hashCode());
        return result;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        @SuppressWarnings("unchecked")
        MinMaxAvg<T> other = (MinMaxAvg<T>) obj;
        if (avg == null) {
            if (other.avg != null)
                return false;
        } else if (!avg.equals(other.avg))
            return false;
        if (max == null) {
            if (other.max != null)
                return false;
        } else if (!max.equals(other.max))
            return false;
        if (min == null) {
            if (other.min != null)
                return false;
        } else if (!min.equals(other.min))
            return false;
        return true;
    }

    @Override
    public String toString() {
        StringBuilder builder = new StringBuilder();
        builder.append("MinMaxAvg [min=");
        builder.append(min);
        builder.append(", max=");
        builder.append(max);
        builder.append(", avg=");
        builder.append(avg);
        builder.append("]");
        return builder.toString();
    }
}

1 Ответ

2 голосов
/ 21 сентября 2011

Импорт и использование банок в GWT осуществляется с помощью модулей.Поскольку GWT Compiler необходимо видеть источник ваших классов для создания javascript, если вы собираетесь использовать свои классы не только на стороне сервера, но и в браузере, вам необходимо включить исходные файлы (.java) вместе с вашим .classфайлы в той же упаковке в вашем банке.Вам также необходимо иметь файл moduleName.gwt.xml в корне вашего модуля.Пример пакета будет выглядеть следующим образом:

org.test.mymodule

-> MyModule.gwt.xml

org.test.mymodule.client

-> MinMaxAvg.class

-> MinMaxAvg.java

Кроме того, чтобы включить этот модуль в проект GWT, необходимо включить созданный вами jar ивам нужно добавить <inherits name="org.test.mymodule.MyModule" /> в дескриптор модуля вашего родительского проекта.

Здесь также есть полезная ссылка о Создание повторно используемых модулей здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...