Доступ к значению переменной classpath eclipse M2_REPO в аргументах VM конфигурации конфигурации - PullRequest
6 голосов
/ 25 ноября 2011

В конфигурации запуска eclipse вам предоставляется набор переменных по умолчанию, которые вы можете использовать в аргументах виртуальной машины, например container_path и env_var.
Я хочу получить доступ к переменной classpath M2_REPO, но не могу найти способ сделать это. Мне нужно указать javaagent в аргументах виртуальной машины, который требует путь к файлу JAR. Этот файл JAR находится в репозитории maven, но я не могу найти способ указать путь к репозиторию maven, используя уже настроенную переменную M2_REPO Classpath (настроенную в windows -> preferences -> java -> Build Path -> Classpath variable).
Я хотел бы использовать это в качестве аргументов своей виртуальной машины, но не могу, потому что classpath_var не является реальной переменной.

-javaagent:${classpath_var:M2_REPO}/org/apache/openjpa/openjpa/2.1.0/openjpa-2.1.0.jar

Есть ли другой способ получить доступ к значению M2_REPO в аргументах виртуальной машины?

1 Ответ

4 голосов
/ 24 февраля 2012

Это не совсем то, о чем вы просили, но он работал для нас как способ совместного использования кодовой базы и отсутствия жестко закодированных путей в наших конфигурациях запуска. Вместо использования переменной classpath используйте переменную подстановки строк (настроенную в windows -> preferences -> run/debug -> String Substitution). Установите его на тот же путь, что и значение M2_REPO, и сохраните. Используя приведенный выше пример, если имя переменной строковой подстановки было также M2_REPO, аргумент виртуальной машины будет

-javaagent:${M2_REPO}/org/apache/openjpa/openjpa/2.1.0/openjpa-2.1.0.jar

Чтобы быть еще более понятным, я бы лично создал переменную подстановки строк openjpa_2_1_0_agent, которая шла прямо в ваш открытый jpa jar.

...