Я использую 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?