Maven - добавить исходную зависимость;но нет доступных исходных файлов Java в Eclipse для компиляции GWT - PullRequest
1 голос
/ 08 января 2011

Обычно приведенный ниже конфиг pom работает для меня.В прошлом я успешно добавлял исходный файл jar-файла в мои проекты в качестве зависимости?

У меня есть два jar-файла, определенных так:

<dependencies>  
  <dependency>  
    <groupId>myGroup</groupId>  
    <artifactId>myJar</artifactId>  
    <version>4.0</version>   
    <type>jar</type>  
    </dependency>    
  <dependency>  
    <groupId>myGroup</groupId>  
    <artifactId>myJar</artifactId>  
    <version>4.0</version>  
    <type>jar</type>  
    <classifier>sources</classifier>  
  </dependency>  
</dependencies>

Когда я открываюФайл myJar-4.0-sources.jar из окна проводника Windows, я вижу все исходные файлы Java в связанных пакетах.Но когда я смотрю в своем проекте eclipse в моих зависимостях maven, я вижу только xml-файлы и никакие java-файлы для myJar-4.0-sources.jar

Кстати, независимо от того, запускаю ли я maven-сборку внутри затмения или снаружижалуется, что в myJar-4.0-sources.jar нет исходного кода для классов.

Кстати, это компиляция GWT.

Вот собственно сообщение об ошибке:

[INFO] [gwt:compile {execution: default}]
[INFO] auto discovered modules [com.noesis.calendar.events.CalendarEvents]
[INFO] Loading inherited module 'com.noesis.commons.Commons'
[INFO]    [WARN] Non-canonical source package: ./
[INFO] Compiling module com.noesis.calendar.events.CalendarEvents
[INFO]    Validating newly compiled units
[INFO]       [ERROR] Errors in 'file:/C:/dev/pouncil_projects/calendar-events/src/main/java/com/noesis/calendar/events/shared/model/Calendar
Event.java'
[INFO]          [ERROR] Line 102: No source code is available for type com.noesis.commons.exceptions.CloneException; did you forget to inher
it a required module?
[INFO]       [ERROR] Errors in 'jar:file:/C:/Documents%20and%20Settings/Tonte%20Pouncil/.m2/repository/com/noesis/commons/noesis-commons/0.0
.1-SNAPSHOT/noesis-commons-0.0.1-SNAPSHOT-sources.jar!/com/noesis/commons/domain/models/core/BaseEntityModel.java'
[INFO]          [ERROR] Line 27: No source code is available for type com.noesis.commons.exceptions.CloneException; did you forget to inheri
t a required module?
[INFO]       [ERROR] Errors in 'jar:file:/C:/Documents%20and%20Settings/Tonte%20Pouncil/.m2/repository/com/noesis/commons/noesis-commons/0.0
.1-SNAPSHOT/noesis-commons-0.0.1-SNAPSHOT-sources.jar!/com/noesis/commons/domain/models/core/DomainModelException.java'
[INFO]          [ERROR] Line 6: No source code is available for type com.noesis.commons.exceptions.ApplicationException; did you forget to i
nherit a required module?
[INFO]          [ERROR] Line 14: No source code is available for type com.noesis.commons.Context; did you forget to inherit a required modul
e?
[INFO]       [ERROR] Errors in 'jar:file:/C:/Documents%20and%20Settings/Tonte%20Pouncil/.m2/repository/com/noesis/commons/noesis-commons/0.0
.1-SNAPSHOT/noesis-commons-0.0.1-SNAPSHOT-sources.jar!/com/noesis/commons/domain/models/core/PersistableBaseModel.java'
[INFO]          [ERROR] Line 70: No source code is available for type com.noesis.commons.calendar.CalendarUtility; did you forget to inherit
 a required module?
[INFO]          [ERROR] Line 84: The method clone() is undefined for the type Object
[INFO]          [ERROR] Line 91: No source code is available for type com.noesis.commons.exceptions.CloneException; did you forget to inheri
t a required module?
[INFO]    Finding entry point classes
[INFO]       [ERROR] Unable to find type 'com.noesis.calendar.events.client.CalendarEvents'
[INFO]          [ERROR] Hint: Previous compiler errors may have made this type unavailable
[INFO]          [ERROR] Hint: Check the inheritance chain from your module; it may not be inheriting a required module or a module may not b
e adding its source path entries properly
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR`

[INFO]          [ERROR] Line 102: No source code is available for type com.noesis.commons.exceptions.CloneException; did you forget to inher
it a required module?

Кто-нибудь знает, почему это так?

Ответы [ 3 ]

2 голосов
/ 31 мая 2012

GWT ищет источники зависимостей в том же JAR, что и скомпилированные файлы классов. Вы должны включить файлы классов и исходные файлы в один и тот же JAR. Для этого добавьте <resource> в раздел <build> POM:

<project>
  <build>
    <resources>
      <!-- include the source files in our main jar for use by GWT -->
      <resource>
        <directory>${project.build.sourceDirectory}</directory>
      </resource>
      <!-- and continue to include our standard resources -->
      <resource>
        <directory>${basedir}/src/main/resources</directory>
      </resource>
    </resources>
  </build>
</project>
2 голосов
/ 08 января 2011

GWT ищет источники зависимостей в том же JAR, что и скомпилированные файлы классов.Поскольку библиотека находится под вашим контролем, лучше всего включить файлы классов и исходные файлы в один и тот же JAR-файл.Для этого добавьте <resource> в раздел <build> POM (при условии стандартного расположения источника Maven):

<project>
  <build>
    <resources>
      <resource>
        <directory>src/main/java</directory>
      </resource>
    </resources>
  </build>
</project>
0 голосов
/ 12 января 2011

Я наконец понял, что моя проблема была. Это был мой файл .gwt.xml. Это не было ссылки на классы GWT правильно. Не то чтобы я решил это, я верю, что оригинальный способ, которым я хотел сослаться на мою исходную библиотеку через исходный файл jar, будет работать. Спасибо.

...