Как запустить основной класс в 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 ответа
Варианты, которые я могу придумать:
- Используйте командную строку, чтобы запустить метод main, передавая jar в classpath.
- Пусть проект A ссылается на конфигурацию проекта B, а не на другой путь. [Я понимаю, что ты не хочешь делать это, но чувствую себя обязанным перечислить это, чтобы быть тщательным)
- Создайте класс в проекте 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 включены.