Как использовать переменные для определения пути к классам в конфигурациях запуска Eclipse?

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

Я уже выяснил, что существует переменная classpath, называемая M2_REPO, которая ссылается на локальный репозиторий Maven (действителен для любого разработчика).

Но как использовать эту переменную в следующем определении pathpath для замены абсолютного пути?

<listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
    ...
    <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&lt;runtimeClasspathEntry externalArchive=&quot;C:/Dokumente und Einstellungen/050967/.m2/repository/com/google/gwt/gwt-dev/2.0.3/gwt-dev-2.0.3.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;"/>
    ...
</listAttribute>

Или есть способ включить переменную среды (например, Windows '%USERPROFILE% может помочь)?

Ответ 1

Измените конфигурацию запуска. Перейдите на вкладку "путь к классу". Сосредоточьтесь на "User Entries". Нажмите кнопку "Дополнительно".

  • Чтобы добавить запись на основе переменной класса, выберите "Добавить переменную класса" и нажмите "ОК". Откроется диалоговое окно. Сосредоточьтесь на M2_REPO и нажмите кнопку "Расширить". Выберите файл JAR.
  • Чтобы добавить запись на основе переменной системной среды, выберите "Добавить переменную строку", а в поле редактирования ниже введите: ${env_var:your-environment-variable-name}/path-to-jar. Например, если ваша переменная системной среды MYVAR, а файл JAR находится под subdir/myfile.jar, вы должны ввести ${env_var:MYVAR}/subdir/myfile.jar.

Ответ 2

Вы можете загрузить это значение из свойства maven.

Maven хранит путь репозитория в свойстве maven.repo.local.

Поместите ${maven.repo.local} в свой файл конфигурации.

<listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
    ...
    <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&lt;runtimeClasspathEntry externalArchive=&quot;${${maven.repo.local}}/com/google/gwt/gwt-dev/2.0.3/gwt-dev-2.0.3.jar&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;"/>
    ...
</listAttribute>

Затем настройте фильтрацию в pom.xml для вашего файла конфигурации, поэтому ${maven.repo.local} будет заменено значением свойства.