У меня есть проект, который нуждается в зависимости от iText 5.5.2 и iText 2.1.7 (Primefaces нуждается в этой конкретной версии во время выполнения и не будет работать с iText 5 из-за проблем с лицензией).Eclipse: исключить зависимость от maven из цикла сборки
Так что у меня это в моем pom.xml:
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.2</version>
<scope>compile</scope>
</dependency>
<!-- iText 2.1.7 is necessary at runtime to have the 'Export to PDF' function of Primeface work -->
<!-- It won't conflict with iText 5 as the packages are different -->
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
<version>2.1.7</version>
<scope>runtime</scope>
</dependency>
Проблема заключается в том, что я не хочу, чтобы наши разработчики, чтобы иметь возможность импортировать классы из IText 2.1.7 (com.lowagie * пакет.). Я хочу заставить их использовать классы из iText 5.5.2 (пакет com.itextpdf. *).
Хотя iText 2.1.7 находится в области исполнения, Eclipse по-прежнему добавляет файл jar в путь сборки, что позволяет разработчикам импортировать неправильный пакет (com.lowagie вместо com.itextpdf).
Есть ли способ исключить его из пути сборки?
Потенциальный дубликат http://stackoverflow.com/questions/25865592/maven-eclipse-how-can-eclipse-honor-maven-runtime-scope –
Я обновил свой ответ, есть трюк с использованием профилей, который хорошо работает. Надеюсь, что может помочь –