Не стоит добавлять файлы .classpath / .project, если ваш проект прост и имеет мало внешних зависимостей. На практике вам часто приходится поддерживать несколько взаимосвязей, поэтому затраты на переносимость вашего .classpath намного меньше, чем накапливаются накладные затраты на его переопределение каждый раз, когда вы переносите проект в рабочее пространство. Чем больше задействована ваша конфигурация, тем более тонкие ошибки вы будете бороться с попыткой воссоздать конфигурацию проекта.
Вы должны иметь возможность настроить свой путь к классам так, чтобы он был переносимым с помощью переменных и библиотек, это избавляет от необходимости жестко кодировать пути. Ваша команда может договориться о стандартном наборе переменных (и / или библиотек), которые будут использоваться. Затем на каждом компьютере разработчика должна быть определена переменная, указывающая на общие ресурсы, которые вы используете на своем пути.
Даже лучше, чем переменные библиотеки. Вы можете определить пользовательские библиотеки (ниже Window->Preferences->Java->Build Path->User Libraries
) для ссылки на ваши общие компоненты, а затем повторно использовать эти библиотеки в каждом проекте. Настроенная библиотека может быть экспортирована со страницы User Libraries
и использована вашими коллегами.
Плагины, такие как m2eclipse , предоставляют библиотеки (также известные как контейнеры пути к классам), которые могут автоматически генерировать контент на основе некоторой конфигурации (POM Maven в случае m2eclipse). Это абстрагирует пути к базовым ресурсам и позволяет динамически добавлять несколько jar-файлов к пути.
Если вы не используете Maven, типичная проблема .classpath заключается в том, что вы хотите добавить все jar-файлы в папке в classpath. Этот ответ показывает, как можно определить собственный плагин для добавления всех jar-файлов в папку через контейнер Classpath. Вы также можете использовать этот подход, чтобы автоматически присоединять источники к обнаруженным элементам и избегать повторения этого усилие каждый раз.
Ниже приведен типичный пример .classpath для проекта, над которым я недавно работал. Библиотека делает конфигурацию намного более подробной, более переносимой, позволяет повторно использовать ее в разных проектах и определяет исходные вложения.
До:
<classpathentry kind="src" path="src/main/java"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="lib" path="C:/apache-ant-1.7.1/lib/xml-apis.jar" sourcepath="C:/apache-ant-1.7.1/src/main"/>
<classpathentry kind="lib" path="C:/apache-ant-1.7.1/lib/ant.jar" sourcepath="C:/apache-ant-1.7.1/src/main"/>
<classpathentry kind="lib" path="C:/apache-ant-1.7.1/lib/ant-antlr.jar" sourcepath="C:/apache-ant-1.7.1/src/main"/>
<classpathentry kind="lib" path="C:/apache-ant-1.7.1/lib/ant-apache-bcel.jar"/>
<classpathentry kind="lib" path="C:/apache-ant-1.7.1/lib/ant-apache-bsf.jar"/>
<classpathentry kind="lib" path="C:/apache-ant-1.7.1/lib/ant-apache-log4j.jar"/>
<classpathentry kind="lib" path="C:/apache-ant-1.7.1/lib/ant-apache-oro.jar"/>
<classpathentry kind="lib" path="C:/apache-ant-1.7.1/lib/ant-apache-regexp.jar"/>
<classpathentry kind="lib" path="C:/apache-ant-1.7.1/lib/ant-apache-resolver.jar"/>
<classpathentry kind="lib" path="C:/apache-ant-1.7.1/lib/ant-commons-logging.jar"/>
<classpathentry kind="lib" path="C:/apache-ant-1.7.1/lib/ant-commons-net.jar"/>
<classpathentry kind="lib" path="C:/apache-ant-1.7.1/lib/ant-jai.jar"/>
<classpathentry kind="lib" path="C:/apache-ant-1.7.1/lib/ant-javamail.jar"/>
<classpathentry kind="lib" path="C:/apache-ant-1.7.1/lib/ant-jdepend.jar"/>
<classpathentry kind="lib" path="C:/apache-ant-1.7.1/lib/ant-jmf.jar"/>
<classpathentry kind="lib" path="C:/apache-ant-1.7.1/lib/ant-jsch.jar"/>
<classpathentry kind="lib" path="C:/apache-ant-1.7.1/lib/ant-junit.jar"/>
<classpathentry kind="lib" path="C:/apache-ant-1.7.1/lib/ant-launcher.jar"/>
<classpathentry kind="lib" path="C:/apache-ant-1.7.1/lib/ant-netrexx.jar"/>
<classpathentry kind="lib" path="C:/apache-ant-1.7.1/lib/ant-nodeps.jar"/>
<classpathentry kind="lib" path="C:/apache-ant-1.7.1/lib/ant-starteam.jar"/>
<classpathentry kind="lib" path="C:/apache-ant-1.7.1/lib/ant-stylebook.jar"/>
<classpathentry kind="lib" path="C:/apache-ant-1.7.1/lib/ant-swing.jar"/>
<classpathentry kind="lib" path="C:/apache-ant-1.7.1/lib/ant-testutil.jar"/>
<classpathentry kind="lib" path="C:/apache-ant-1.7.1/lib/ant-trax.jar"/>
<classpathentry kind="lib" path="C:/apache-ant-1.7.1/lib/ant-weblogic.jar"/>
<classpathentry kind="lib" path="C:/apache-ant-1.7.1/lib/xercesImpl.jar"/>
* * После того, как тысяча двадцать-одиной: * * тысяча двадцать-дв
<classpathentry kind="src" path="src/main/java"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<!--all ant jars and source attachments defined here -->
<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/ant"/>