Как запустить основной класс в Eclipse из другого проекта Maven?

Итак, я сказал, что два проекта, проект A и проект B. Проект A содержит основной класс, который я хочу запустить. Проект B содержит некоторые ресурсы classpath, которые необходимы, а также содержит ссылку на проект A. Если я запускаю основной класс в проекте A напрямую, он будет запускаться только в контексте этого проекта и не будет включать ресурсы classpath, так как они находимся в проекте B.

Но если я пытаюсь запустить Проект B, я не могу выбрать основной класс (так как он не существует в этом проекте), и если я пытаюсь щелкнуть правой кнопкой мыши по проекту -> Run As -> Java Application, он не будет придумать этот основной класс в качестве действительного основного класса. (Он появляется в аналогичном диалоге для проекта А.)

Похоже, это общая проблема Eclipse; Я нашел этот связанный вопрос, но этот человек не использует Maven. Кроме того, они приняли ответ, который ссылался на проект B из проекта A, который нарушает инкапсуляцию, которую я пытаюсь достичь здесь: у проекта, на который ссылается Eclipse 3,6 (Helios), есть метод main, невозможно получить доступ из run config при нацеливании на проект, на который ссылаются

3 ответа

Решение

Варианты, которые я могу придумать:

  1. Используйте командную строку, чтобы запустить метод main, передавая jar в classpath.
  2. Пусть проект A ссылается на конфигурацию проекта B, а не на другой путь. [Я понимаю, что ты не хочешь делать это, но чувствую себя обязанным перечислить это, чтобы быть тщательным)
  3. Создайте класс в проекте B, у которого есть метод main, который делегирует проекту A.

Так что я получил эту работу над

Eclipse IDE для разработчиков Java Версия: Kepler Service Release 1 Идентификатор сборки: 20130919-0819

@Michael Piefel - Если B зависит от A, то A уже находится в пути к классу конфигурации run run B под записью пути к классу Maven Dependencies.

Кажется, проблема в том, что пользовательский интерфейс не представляет класс, который будет выбран из диалогового окна поиска.

Но если вы просто введете полное имя класса в текстовое поле "Основной класс" и запустите его, он все равно будет работать.:D

Вам действительно просто нужно настроить ваши настройки запуска соответственно. На вкладке Classpath для конфигурации запуска, которую вы используете для запуска класса из проекта A, вы можете добавить проект B в качестве зависимости. Теперь при запуске этого класса все ресурсы из проекта B включены.

Другие вопросы по тегам