Eclipse не собирает источник Maven при отладке

Я загрузил источник для всех JAR Maven в мой путь сборки, используя Maven- > Download Sources и mvn eclipse:eclipse -DdownloadSources=true, которые сработали! Когда я открываю путь сборки, я вижу, что JAR файлы источников прикреплены для каждого файла JAR.

Но когда я запускаю проклятую вещь на Tomcat 6, я продолжаю получать страницу "Source not found" с кнопкой "Edit Source lookup path". Но источник уже привязан к пути сборки. Что это не работает?

Когда я вручную укажу его в файл JAR, щелкнув по кнопке "Изменить путь к исходному файлу", он будет работать. И когда я вручную указываю его на папку, он не работает. Почему Eclipse или Tomcat не собирают подключенный источник в пути сборки?

Примечание. Я использую apache-maven-3.0.4, apache-tomcat-6.0.16 и Eclipse Indigo Service Release 2.

Ответ 1

Хотя в этой ошибке было больше голосов всех ошибок @Sonatype, она не была исправлена.

Однако я заполнил запрос расширения на Eclipse Bugzilla, и, если вы согласны с этой проблемой, "Исходный не найден" должен быть исправлен, пожалуйста, проголосуйте за него здесь.

Вы можете найти три обхода здесь.

Ответ 2

Я нашел этот плагин com.ifedorenko.m2e.sourcelookup. Ссылка была представлена ​​в разделе Отладка Java: источник не найден.

Перейдите к Help > Install New Software .. и используйте

http://ifedorenko.github.com/m2e-extras/

чтобы найти ссылки. После установки этого плагина я наконец смог отлаживать исходный код зависимостей.

Ответ 3

В моем случае проблема была связана с исходным кодом, прилагаемым к "Конфигурации отладки", возможно, некоторые остатки образуют переход к Maven.

Я решил это, перейдя на страницу "Конфигурации отладки..." и выбрав конфигурацию в случае, а затем на вкладке "Источники" я восстановил значения по умолчанию, которые добавили все зависимости проекта Maven.

Ответ 4

Окно- > Настройки- > JBoss Tools- > Поиск источника

убедитесь, что у вас есть проверка "Автоматически добавлять исходный контейнер JBoss Maven ко всем конфигурациям запуска JBoss As". и в разделе "Автоматическая настройка исходного источника Java", выберите "Всегда".

это помогает мне решить проблему.

Ответ 5

Думаю, я исправил это для себя, обновив Eclipse m2e. Я думаю, что у меня была версия ~ 1.2, а затем обновлена ​​до последней [с момента написания] 1.6.2.

Комментарии Eclipse Bug помогли мне понять это.

Теперь я могу отлаживать мой пакет gquery-dnd-bundle-1.0.6!

Ответ 6

Используйте внешний Maven вместо стандартного встроенного в диалог Конфигурация отладки.

См. пример скриншота ниже (меню Run → Debug Configurations...):

Настроить внешний Maven

Проверенная среда:

  • Eclipse IDE для разработчиков Java: Oxygen.1a Release (4.7.1a), 64-разрядный (от spring.io)
  • Oracle JDK jdk1.8.0_144, 64-разрядный
  • Maven: 3.5.2
  • ОС: Windows 10 Enterprise N, 64-разрядный
  • Цель тестирования hpi:run (образец плагина Jenkins)

Ответ 7

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>${version.maven-source-plugin}</version>
            <executions>
                <execution>
                    <id>attach-sources</id>
                    <goals>
                        <goal>jar-no-fork</goal>
                        <goal>test-jar-no-fork</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

Ответ 8

Проект "target" maven должен испускать исходный код, прежде чем "клиентские" проекты могут иметь доступ к исходному коду. Я решил проблему, используя maven-source-pluging в проекте "target": https://maven.apache.org/plugins/maven-source-plugin/index.html

Просто используйте следующий фрагмент в файле pom.xml целевого проекта, сделайте выпуск и используйте версию выпуска в файле pom.xml клиентского проекта. Затем затмение может автоматически позволить вам "прыгать" в целевой проект selylesly:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>${version.maven-source-plugin}</version>
            <executions>
                <execution>
                    <id>attach-sources</id>
                    <goals>
                        <goal>jar-no-fork</goal>
                        <goal>test-jar-no-fork</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>