Как проинструктировать Eclipse для записи относительных путей внешних банок?
Вот мой файл .classpath, после того как я добавил еще два внешних баночки (org.restlet.ext.simple.jar и org.simpleframework.jar):
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
<classpathentry kind="lib" path="../3rd_party/restlet-jse-2.0.10/lib/org.restlet.ext.jackson.jar" sourcepath="C:/Program Files/Java/restlet-jse-2.0.10/src">
<attributes>
<attribute name="javadoc_location" value="file:/C:/Program Files/Java/restlet-jse-2.0.10/docs/ext/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="../3rd_party/restlet-jse-2.0.10/lib/org.restlet.ext.ssl.jar" sourcepath="C:/Program Files/Java/restlet-jse-2.0.10/src">
<attributes>
<attribute name="javadoc_location" value="file:/C:/Program Files/Java/restlet-jse-2.0.10/docs/ext/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="../3rd_party/restlet-jse-2.0.10/lib/org.restlet.jar" sourcepath="C:/Program Files/Java/restlet-jse-2.0.10/src">
<attributes>
<attribute name="javadoc_location" value="file:/C:/Program Files/Java/restlet-jse-2.0.10/docs/api"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="../3rd_party/restlet-jse-2.0.10/lib/org.jsslutils_1.0/org.jsslutils.jar"/>
<classpathentry kind="lib" path="../3rd_party/restlet-jse-2.0.10/lib/org.codehaus.jackson_1.4/org.codehaus.jackson.core.jar"/>
<classpathentry kind="lib" path="../3rd_party/restlet-jse-2.0.10/lib/org.codehaus.jackson_1.4/org.codehaus.jackson.mapper.jar"/>
<classpathentry kind="lib" path="../3rd_party/guice-3.0/aopalliance.jar"/>
<classpathentry kind="lib" path="../3rd_party/guice-3.0/guice-3.0.jar"/>
<classpathentry kind="lib" path="../3rd_party/guice-3.0/javax.inject.jar"/>
<classpathentry kind="lib" path="C:/dev/poc/3rd_party/restlet-jse-2.0.10/lib/org.restlet.ext.simple.jar" sourcepath="C:/Program Files/Java/restlet-jse-2.0.10/src">
<attributes>
<attribute name="javadoc_location" value="file:/C:/Program Files/Java/restlet-jse-2.0.10/docs/ext/"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="C:/dev/poc/3rd_party/restlet-jse-2.0.10/lib/org.simpleframework_4.1/org.simpleframework.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
Обратите внимание, что они добавлены с абсолютными путями, в отличие от других записей, которые относятся к относительным, но только потому, что я вручную редактирую этот файл каждый раз, когда добавляются новые внешние банки.
Мой вопрос: могу ли я как-то сказать Eclipse использовать относительные пути вновь добавленных внешних банок?
Спасибо.
Ответы
Ответ 1
Одно из решений заключается в том, чтобы не использовать внешние банки, а чтобы помещать ваши банки в проект, а затем использовать Add Jar (s) вместо Add External Jar (s).
Это имеет смысл с точки зрения управления версиями, вы можете добавлять/удалять зависимости по мере необходимости. Это также означает, что когда вы обновляете одну банку для отдельного проекта, это не повлияет на это.
Мы это делали в прошлом, у нас был единственный проект, в котором содержались все баночки, на которые ссылались в пути построения других проектов.
Но теперь мы используем maven, поэтому нам больше не нужно это делать.
Ответ 2
В eclipse щелкните правой кнопкой мыши проект, выберите Свойства, затем Настроить путь Java, Библиотеки и выберите " Добавить Jars"... это добавит его с относительным путем. " Добавить внешние JAR" добавляет банку абсолютный путь, который не является тем, что вы хотите.
Ответ 3
Если ваши пути относятся к вашей установке Eclipse, объявите их с помощью кнопки "Добавить переменную…" (в [Проект] → Свойства → Путь сборки Java → Библиотеки). Там вам должна быть предложена переменная с именем ECLIPSE_HOME
, которую вы затем можете ECLIPSE_HOME
. Это создаст запись "kind = var" в вашем .classpath
(вместо "kind = lib").
<classpathentry kind="var" path="ECLIPSE_HOME/...
Если ваши пути относительно где-то еще, вы можете объявить свои собственные переменные (Настроить переменные). Таким образом, когда ваше рабочее пространство изменяется или кто-то делает его копию, вам просто нужно обновить эти переменные. Это часто яснее, чем наличие истинных относительных путей, начинающихся с одной или двух точек.
Ответ 4
Чтобы добавить относительный путь в файл .classpath в eclipse, выполните следующие действия.
1) Щелкните правой кнопкой мыши на вашем проекте → нажмите на меню "Создать" и выберите подменю "Папка" → введите имя папки в появившемся диалоговом окне → и нажмите "Готово".
2) Теперь перейдите в рабочее пространство eclipse → Возьмите все файлы jar с жесткого диска и вставьте их в папку lib ИЛИ вы также можете скопировать файлы jar → щелкните правой кнопкой мыши на папке lib → выберите меню вставки из списка и вставьте его ,
3) После вставки щелкните правой кнопкой мыши проект в eclipse → Нажмите на Build Path → Выберите подменю Configure Build Path → В появившемся диалоговом окне перейдите на вкладку библиотеки и нажмите кнопку Add JAR...... → Выбрать папку lib и выберите все банки внутри папки lib → затем нажмите Apply и Close.
Вот оно, Готово !! Вы добавили файлы jar в classpath, используя относительный путь !!!