2011-09-23 4 views
2

내 프로젝트 (mvn clean install)를 빌드 할 때이 문제가 발생하며 일부 전이 의존성은 스냅 샷 버전이며 대상 웹 응용 프로그램 디렉토리 (XXXUtil-1.0-20110922.172721-52.jar)로 다운로드 및 복사됩니다. 그런 다음 mvn gwt:run을 실행하면 XXXUtil-1.0-SNAPSHOT.jar이 사용되고 대상 웹 응용 프로그램 디렉토리에 복사됩니다. 왜 이런 일이 일어나는지 알 수 없습니다. 내가 폭발적으로 또는 내적으로 달리는지 여부는 중요하지 않습니다. http://www.tikalk.com/alm/forums/maven-war-plugin-picking-multiple-version-same-snapshot-jars : 도움이 여기에 설명 된 제안의Maven GWT 플러그인이 동일한 스냅 샷 jar의 여러 버전을 복사합니다.

<plugins> 
    <!-- GWT Maven Plugin --> 
    <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>gwt-maven-plugin</artifactId> 
      <version>2.3.0-1</version> 
      <executions> 
        <execution> 
          <goals> 
            <goal>compile</goal> 
            <goal>i18n</goal> 
            <goal>generateAsync</goal> 
          </goals> 
        </execution> 
      </executions> 
      <configuration> 
        <runTarget>Shell.html</runTarget> 
        <hostedWebapp>${webappDirectory}</hostedWebapp> 
    <i18nMessagesBundle>com.myapp.client.Messages</i18nMessagesBundle> 
      </configuration> 
      <dependencies> 
        <dependency> 
          <groupId>com.google.gwt</groupId> 
          <artifactId>gwt-user</artifactId> 
          <version>${gwt.version}</version> 
        </dependency> 
        <dependency> 
          <groupId>com.google.gwt</groupId> 
          <artifactId>gwt-dev</artifactId> 
          <version>${gwt.version}</version> 
        </dependency> 
      </dependencies> 
    </plugin> 

    <!-- Copy static web files before executing gwt:run --> 
    <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <version>2.1.1</version> 
      <executions> 
        <execution> 
          <phase>compile</phase> 
          <goals> 
            <goal>exploded</goal> 
          </goals> 
        </execution> 
      </executions> 
      <configuration> 
<!-- <outputFileNameMapping>@{artifactId}@[email protected]{version}@[email protected]{extension}@</outputFileNameMapping> --> 
        <webappDirectory>${webappDirectory}</webappDirectory> 
      </configuration> 
    </plugin> 
</plugins> 

없음.

XXXUtil-1.0-SNAPSHOT.jar의 로컬 스냅 샷을 만들면 작동하지만 nexus 저장소에서 스냅 샷을 다운로드 할 때 작동하지 않습니다. 그것을 보는 또 다른 방법은 프로젝트 A가 WAR을 생성하고 C.jar에 의존하는 B.jar에 의존하는 것과 같습니다. mvn install을 사용하여 전쟁을 빌드하면 WEB-INF/lib에 올바른 jar 파일이 생성되므로 C-1.0-20110922.172721-52.jar가됩니다. 어느 것이 맞고 내 전쟁을 전개하면 효과가 있습니다. 만약 내가 이클립스를 사용하여 호스트 모드에서 실행, 그 벌금. 하지만 mvn : gwt-run을 실행하면 C-1.0-SNAPSHOT.jar가 WEB-INF/lib에 복사되어 C-1.0-SNAPSHOT.jar와 C-1.0-20110922.172721-52.jar가 2 개 있습니다.

답변

0

내가 제안 할 수있는 유일한 방법은 maven-gwt-plugin을 디버그하는 것입니다. 자식 저장소에서

체크 아웃은 https://github.com/gwt-maven-plugin/gwt-maven-plugin.git

+0

내가하고 싶은 것은 무엇이지만 여전히 maven-gwt-plugin이 XXXUtil-1.0-20110922.172721-52.jar 대신 XXXUtil-1.0-SNAPSHOT.jar을 사용하려고 시도하는 이유를 파악할 수 없습니다. XXXUtil-1.0-SNAPSHOT.jar의 로컬 스냅 샷을 만들면 작동하지만 nexus 저장소에서 스냅 샷을 다운로드 할 때 작동하지 않습니다. – Asim

0

나는 정확히 같은 문제가 있었다. 디버깅 후 maven-war-plugin의 사용을 제거하고 maven-resources-plugin (단계 컴파일, copy-resources 목표 컴파일)을 추가했습니다. 나는 gwt를 시험해 보았다 : 그 후에 실행하고 설치하고 아무 문제없이 일했다. 이렇게하면 종속성이 두 번 복사되는 것을 피할 수 있습니다.