2016-02-20 2 views
3

я получаю эту ошибку при попытке построить проект GWT с мавена:Как заставить зависимость включить артефакт с конкретным номером версии

Ваш проект декларирует зависимость от GWT-пользователя 2.6.0. Этот плагин предназначен , по крайней мере, GWT версии 2.7.0

Как я выяснил GWT-пользователя 2.6.0 загружается с com.google.gwt.eventbinder. Как я могу заставить com.google.gwt.eventbinder использовать gwt-user 2.7.0 вместо 2.6.0?

Странная вещь, что сборка работала до того, как я сделал «git pull».

Вот мой pom.xml

<?xml version="1.0" encoding="UTF-8"?> 
<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.prognoz.ra.okhs</groupId> 
<artifactId>gwtclient</artifactId> 
<version>0.3.1-SNAPSHOT</version> 

<packaging>war</packaging> 

<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <gwt.version>2.7.0</gwt.version> 
    <maven.version>3.0.5</maven.version> 
    <jdk.version>1.7</jdk.version> 
    <version.org.codehaus.mojo.gwt.maven.plugin>2.7.0</version.org.codehaus.mojo.gwt.maven.plugin> 
    <webappDirectory>war</webappDirectory> 
    <maven.build.timestamp.format>yyyy-MM-dd HH:mm</maven.build.timestamp.format> 
    <skipTests>true</skipTests> 
</properties> 

<prerequisites> 
    <maven>${maven.version}</maven> 
</prerequisites> 

<dependencies> 
    <dependency> 
     <groupId>org.moxieapps.gwt</groupId> 
     <artifactId>highcharts</artifactId> 
     <version>1.7.0</version> 
     <scope>system</scope> 
     <systemPath>${basedir}/src/main/webapp/WEB-INF/lib/highcharts-1.7.0.jar</systemPath> 
    </dependency> 

    <dependency> 
     <groupId>com.prognoz.ra.dbutil</groupId> 
     <artifactId>dbutil</artifactId> 
     <scope>system</scope> 
     <version>1.0.1-SNAPSHOT</version> 
     <systemPath>${basedir}/out/artifacts/dbutil_jar/dbutil.jar</systemPath> 
    </dependency> 

    <dependency> 
     <groupId>com.liferay.org.apache.commons.fileupload</groupId> 
     <artifactId>com.liferay.org.apache.commons.fileupload</artifactId> 
     <version>6.2.0.1</version> 
    </dependency> 

    <dependency> 
     <groupId>org.apache.commons</groupId> 
     <artifactId>commons-io</artifactId> 
     <version>1.3.2</version> 
    </dependency> 

    <dependency> 
     <groupId>com.google.gwt</groupId> 
     <version>${gwt.version}</version> 
     <artifactId>gwt-servlet</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
     <version>2.5</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>jsp-api</artifactId> 
     <version>2.0</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>com.google.guava</groupId> 
     <artifactId>guava</artifactId> 
     <version>18.0</version> 
    </dependency> 
    <dependency> 
     <groupId>com.google.guava</groupId> 
     <artifactId>guava-gwt</artifactId> 
     <version>18.0</version> 
    </dependency> 
    <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.17</version> 
    </dependency> 

    <dependency> 
     <groupId>commons-io</groupId> 
     <artifactId>commons-io</artifactId> 
     <version>2.3</version> 
    </dependency> 

    <dependency> 
     <groupId>com.google.gwt.eventbinder</groupId> 
     <artifactId>eventbinder</artifactId> 
     <version>1.1.0</version> 
    </dependency> 
</dependencies> 

<build> 
    <resources> 
     <resource> 
      <directory>${basedir}/src/main/java</directory> 
      <includes> 
       <include>**/*.properties</include> 
      </includes> 
     </resource> 
    </resources> 
    <plugins> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>gwt-maven-plugin</artifactId> 
      <version>${version.org.codehaus.mojo.gwt.maven.plugin}</version> 
      <executions> 
       <execution> 
        <goals> 
         <goal>compile</goal> 
        </goals> 
       </execution> 
      </executions> 
      <configuration> 
       <compileReport>true</compileReport> 
       <logLevel>INFO</logLevel> 
       <copyWebapp>true</copyWebapp> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-source-plugin</artifactId> 
      <version>2.4</version> 
     </plugin> 

     <plugin> 
      <artifactId>maven-war-plugin</artifactId> 
      <version>2.5</version> 
      <configuration> 

      </configuration> 
     </plugin> 

     <plugin> 
      <artifactId>maven-deploy-plugin</artifactId> 
      <version>2.8.2</version> 
      <executions> 
       <execution> 
        <id>deploy</id> 
        <phase>deploy</phase> 
        <goals> 
         <goal>deploy</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 

     <plugin> 
      <groupId>org.apache.tomcat.maven</groupId> 
      <artifactId>tomcat7-maven-plugin</artifactId> 
      <version>2.2</version> 
      <configuration> 
       <url>http://localhost:8080/manager/text</url> 
       <server>Tomcat8_local</server> 
       <path>/ra-okhs</path> 
      </configuration> 
     </plugin> 

     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.3.2</version> 
      <configuration> 
       <source>${jdk.version}</source> 
       <target>${jdk.version}</target> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

<profiles> 
    <profile> 
     <id>m2e</id> 
     <activation> 
      <property> 
       <name>m2e.version</name> 
      </property> 
     </activation> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>org.codehaus.mojo</groupId> 
        <artifactId>gwt-maven-plugin</artifactId> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 
</profiles> 

ответ

2

Решение 1

Проблема заключается в том eventbinder имеет зависимость от GWT-пользователя артефакт. он использует 2.6.0 по умолчанию, вы можете увидеть его с помощью этой команды.

mvn dependency:tree 

enter image description here

Если добавить этот блок зависимостей к вашему ПОМ;

<dependency> 
    <groupId>com.google.gwt</groupId> 
    <artifactId>gwt-user</artifactId> 
    <version>2.7.0</version> 
</dependency> 

enter image description here

Это будет выглядеть следующим образом ...

Это означает, что ваш проект будет иметь GWT-пользователь 2.7.0 все время, я не проверял, все ли в порядке с совместимость версий или что-то ваша проблема будет решена ..

Решение 2 Спасибо за комментарий @Thomas Бройер в мы можем заставить eventbinder использовать 2.7.0 GWT-нас er или любой зависимости gwt. если мы просто добавить это управление зависимостью нашего П

<dependencyManagement> 
<dependencies> 
    <dependency> 
    <groupId>com.google.gwt</groupId> 
    <artifactId>gwt</artifactId> 
    <version>2.7.0</version> 
    <type>pom</type> 
    <scope>import</scope> 
    </dependency> 
</dependencies> 
</dependencyManagement> 

Результата:

enter image description here

+1

Это помог, спасибо. – ETartaren

+1

Или вы можете использовать dependencyManagement. Начиная с 2.7.0 вы можете использовать scope = import с com.google.gwt: gwt для импорта gwt-user, gwt-servlet, gwt-dev и т. Д. В dependencyManagement. –

+0

thx для подсказки я добавлю это, чтобы ответить как второе решение. –