2016-03-16 5 views
0

У меня есть рабочее задание, которое развертывается в Amazon EMR. Поскольку ЭМИ предоставляет hadoop-core банку, я настроил зависимость в моем pom, как provided:Включая исключенные банки в intellij run конфигурациях

<dependency> 
     <groupId>org.apache.hadoop</groupId> 
     <artifactId>hadoop-core</artifactId> 
     <version>0.20.2-cdh3u6</version> 
     <scope>provided</scope> 
    </dependency> 

Проблема заключается в том, что, когда я хочу отладить банку внутри IntelliJ, он не может найти один из классов этот банку, org.apache.hadoop.util.RunJar.

Можно ли настроить Intellij, чтобы включить эту банку в путь класса при отладке/запуске jar внутри intellij, но все же исключить эту банку из выходной банки?

Путь к фактическому банку на моей локальной машине /Users/jbrown/.m2/repository/org/apache/hadoop/hadoop-core/0.20.2-cdh3u6/hadoop-core-0.20.2-cdh3u6.jar - Я попытался добавить -cp /Users/jbrown/.m2/repository/org/apache/hadoop/hadoop-core/0.20.2-cdh3u6/hadoop-core-0.20.2-cdh3u6.jar к параметрам виртуальной машины в конфигурации запуска, но тогда работа не могла работать вообще.

+0

Предполагая ... Maven? Если да, пожалуйста, уточните для пользователей, у которых может быть ответ. Также рассмотрите вопрос о пересмотре вашего обращения к каждому JAR с последовательными соглашениями об именах, чтобы облегчить пользователям понимание. – Harmelodic

ответ

0

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

У вас могут быть профили prod и debug, которые включают в себя раздел dependencies. Отладка может пропустить тег provided для всех зависимых от hadoop зависимостей, которые будут включать зависимости в последнем JAR.

Подробнее о профилях maven here.

+0

@ jbrown. Пожалуйста, поддержите ответ, если вы чувствуете, что предложение может решить вашу проблему. Благодаря! Счастливый хаос! – rahulbmv

Смежные вопросы