gwt-servlet.jar отсутствует в WEB-INF / lib при компиляции GWT с maven - PullRequest
1 голос
/ 19 декабря 2011

В моем файле pom я включил зависимость gwt-servlet, но если я запускаю mvn clean install и mvn eclipse:eclipse и открываю проект в eclipse, я получаю следующую ошибку

GWT SDK JAR gwt-servlet.jar отсутствует в каталоге WEB-INF / lib

РЕДАКТИРОВАТЬ: Вот моя зависимость (мы используем собственный репозиторий maven):

<dependency>
    <groupId>com.google.gwt</groupId>
    <artifactId>gwt-user</artifactId>
    <version>2.4.0</version>
</dependency>
<dependency>
    <groupId>com.google.gwt</groupId>
    <artifactId>gwt-servlet</artifactId>
    <version>2.4.0</version>
</dependency>
<dependency>
    <groupId>com.smartgwt</groupId>
    <artifactId>smart-gwt</artifactId>
    <version>2.5</version>
</dependency>

РЕДАКТИРОВАТЬ 2 (основная помпа):

<build>
    <extensions>
      <extension>
        <groupId>org.apache.maven.wagon</groupId>
        <artifactId>wagon-ftp</artifactId>
      </extension>
    </extensions>
....

Ответы [ 2 ]

2 голосов
/ 27 декабря 2011

Я заметил две вещи.

1) Указанная вами зависимость от smartgw не может быть разрешена из центрального хранилища maven

<dependency>
    <groupId>com.smartgwt</groupId>
    <artifactId>smart-gwt</artifactId>
    <version>2.5</version>
</dependency>

Она имеет версию smartgw только для версии 2.4 (см. Здесь http://search.maven.org/#search%7Cga%7C1%7Csmartgwt) Вместо этого у меня былочтобы использовать это

<dependency>
    <groupId>com.smartgwt</groupId>
    <artifactId>smartgwt</artifactId>
    <version>2.4</version>
</dependency>

, обратите внимание, что идентификатор артефакта также отличается (если у вас есть собственный репозиторий, содержащий это, пожалуйста, обновите ваш вопрос)

2) Вам не нужно делать затмение: вместо eclipse вы можете запустить

Файл> Импорт> Существующие проекты Maven

, это автоматически сгенерирует проект eclipse из вашего pom.xml

UPDATE

Я проверил следующее:

Родительский pom в папке gwttest2

<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.test</groupId>
    <artifactId>gwttest2-main</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>

    <modules>
        <module>gwttest2-module1</module>
    </modules>

    <build>
        <extensions>
            <extension>
                <groupId>org.apache.maven.wagon</groupId>
                <artifactId>wagon-ftp</artifactId>
            </extension>
        </extensions>
    </build>


    <dependencies>
        <dependency>
            <groupId>com.google.gwt</groupId>
            <artifactId>gwt-user</artifactId>
            <version>2.4.0</version>
        </dependency>
        <dependency>
            <groupId>com.google.gwt</groupId>
            <artifactId>gwt-servlet</artifactId>
            <version>2.4.0</version>
        </dependency>
        <dependency>
            <groupId>com.smartgwt</groupId>
            <artifactId>smartgwt</artifactId>
            <version>2.4</version>
        </dependency>

    </dependencies>

</project>

Дочерний pom в папке gwttest2 / gwttest2-module1

<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.test</groupId>
    <artifactId>gwttest2-module1</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <parent>
        <artifactId>gwttest2-main</artifactId>
        <groupId>com.test</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>

    <build>
        <extensions>
            <extension>
                <groupId>org.apache.maven.wagon</groupId>
                <artifactId>wagon-ftp</artifactId>
            </extension>
        </extensions>
    </build>


    <dependencies>
        <dependency>
            <groupId>com.google.gwt</groupId>
            <artifactId>gwt-user</artifactId>
            <version>2.4.0</version>
        </dependency>
        <dependency>
            <groupId>com.google.gwt</groupId>
            <artifactId>gwt-servlet</artifactId>
            <version>2.4.0</version>
        </dependency>
        <dependency>
            <groupId>com.smartgwt</groupId>
            <artifactId>smartgwt</artifactId>
            <version>2.4</version>
        </dependency>

    </dependencies>

</project>
1 голос
/ 20 декабря 2011

Скажите Eclipse, что нужно использовать зависимости Maven, щелкнув правой кнопкой мыши папку «Проект» и выбрав

Настройка> Преобразовать в Maven Project.

Кажется, что даже после запуска mvn eclipse: eclipse, вы должны сделать это вручную, чтобы Eclipse фактически позволил Maven позаботиться о ваших зависимостях.

Если вы не видите эту опцию, возможно, у вас не установлен плагин M2Eclipse в Eclipse ...

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