если вы разрабатываете компоненты ADF (10g / 11g, я полагаю), я полагаю, вы будете использовать JDeveloper в качестве IDE. JDeveloper поставляется с очень богатым инструментом управления библиотеками, который позволяет вам определить, какие библиотеки требуются для компиляции или какие должны быть упакованы для развертывания. Полагаю, вы уже знаете, как добавить библиотеки в проекты и указать в профиле развертывания, какие из них следует выбрать при упаковке. Если вы хотите, чтобы ваши библиотеки были недоступны, возможно, это лучший подход. Допустим, библиотеки, на которые вы ссылаетесь, тоже являются "Webcenter", и этот подход гарантирует, что у вас есть подходящие библиотеки, поскольку JDeveloper будет поставляться с правильными библиотеками версий.
Тем не менее, поскольку вы используете maven, я бы не советовал держать некоторые библиотеки вне контроля и репозитории maven. Я бы рекомендовал выбирать между управлением библиотекой maven и Oracle JDeveloper. В нашем текущем проекте мы работаем с JDeveloper ADF 11g (и WebCenter) и используем maven, это просто облегчает нам управление библиотекой. В конечном итоге у нас будет большое количество сторонних библиотек (например, Apache, Spring и т. Д.), Которые будут полезны для управления maven, и не так много библиотек Oracle, действительно необходимых для компиляции в IDE (как вы потребуются только API, а не их реализации). Наш подход состоял в том, чтобы добавлять библиотеки Oracle в наш репозиторий maven всякий раз, когда они требуются, и позволить maven контролировать все управление зависимостями.
Как другие говорят в своих ответах, если вы не хотите, чтобы зависимости были включены ни в один из ваших артефактов, используйте <scope>provided</scope>
. После того, как вы настроите свою среду разработки, вы будете благодарны maven за работу, и вы можете (почти) забыть об управлении зависимостями. Для создания файлов JDeveloper IDE мы используем плагин maven jdev, поэтому mvn jdev:jdev
будет генерировать файлы нашего проекта и устанавливать зависимости от библиотек и между ними для правильной компиляции.
Обновлен:
Конечно, вам нужно обращаться к библиотекам ADF в ваших файлах pom. В нашем проекте мы просто ссылаемся на те, которые используются в каждом приложении, скажем, на библиотеки ADF Tag или на конкретную службу, а не на весь стек ADF / WebCenter. Для этого используйте «предоставленную» область. Вы все еще можете позволить JDeveloper управлять вашими библиотеками, но мы обнаружили, что проще использовать подход на 100% для библиотек JDeveloper или подход на 100% для maven. Если вы выберете подход maven, сначала вам потребуется некоторое время для создания локального репозитория, но как только это будет сделано, его очень легко поддерживать, и весь цикл (разработка, сборка, тестирование, упаковка и развертывание) будет проще, имея более последовательную конфигурацию. Это правда, что в будущем вам придется обновляться до более поздних версий ADF, но поскольку ваша структура репозитория уже будет определена, это должно быть что-то быстрое. Для будущих обновлений я рекомендую оставить версию ADF как свойство в верхней части окна, что позволит вам быстрее переключаться на новую версию.