Я использую Apache Maven для управления моими Java-библиотеками (jar) и некоторыми проектами, использующими библиотеки. Для удобства я использую mvn eclipse:eclipse для создания файлов проекта Eclipse, которые можно импортировать в рабочее пространство Eclipse для редактирования.
Проблемы возникают, когда я редактирую основной проект и проекты Java lib в одном рабочем пространстве Eclipse. То есть mvn eclipse:eclipse включает зависимость src path в файле .classpath, а не зависимость jar, как ожидалось.
Скажем, у меня есть проект Jave lib с именем mylib. Соответствующий файл jar mylib.jar был развернут в приватном Maven-репо, поддерживаемом мной. Чтобы использовать mylib.jar в основном проекте, в pom.xml включена следующая зависимость.
<!-- pom.xml for the main project -->
<dependency>
<groupId>namespace.my</groupId>
<artifactId>mylib</artifactId>
<version>[1.0, )</version>
</dependency>
mvn compile и mvn test работают идеально, в которых mylib.jar автоматически загружается из моего репо. Однако при попытке mvn eclipse:eclipse я обнаружил, что сгенерированный файл .classpath не включает зависимость mylib.jar, как ожидалось. Вместо этого он включает каталог исходного файла для mylib следующим образом.
<!-- .classpath file generated by mvn eclipse:eclipse -->
<classpathentry kind="src" path="/mylib"/>
Кажется, что Maven читает метаданные Eclipse и находит mylib, а основной проект сосуществует в одном рабочем пространстве. Поэтому maven включает источник для моего блага. Черт. Как я могу сказать maven игнорировать источник локального проекта и просто включить файл jar?