2008-11-17 3 views

ответ

4

Вот пример, используя цель mvn install. Я использовал параметры env vars для windows вместо параметров, которые вам нужно будет предоставить.

mvn install:install-file -DgroupId=%DERBYTOOLS_GROUP_ID% \ 
    -DartifactId=%DERBYTOOLS_ARTIFACT_ID% \ 
    -Dversion=%DERBYTOOLS_VERSION% \ 
    -Dpackaging=jar \ 
    -Dfile=%DERBYTOOLS_FILE_PATH% 
+0

Что такое файл аргумент? Мне не нужно указывать его, когда я определяю зависимости. – Pablo 2008-11-17 17:59:11

1

Для того, чтобы Maven мог использовать банку, банку нужно объявить как зависимость.

Если у вас есть банку, которая еще не существует в репозитории Maven, вы можете установить ее в свой локальный репозиторий, используя install-file goal установочного плагина (как говорит ответ богатого). Это создает pom, используя предоставленные вами значения, и устанавливает pom и jar в локальный репозиторий. Как только это будет сделано, вы затем добавите зависимость от pom вашего проекта и будете использовать его как обычно.

В этом случае зависимость действительно существует на центральном репозитории Maven (вы можете просто поиск артефактов с помощью Sonatype public repository кстати), так что вы можете просто добавить эту зависимость к вашему POM:

<dependency> 
    <groupId>org.apache.derby</groupId> 
    <artifactId>derbytools</artifactId> 
    <version>10.4.2.0</version> 
</dependency> 

Если вы не хотите устанавливать зависимость по какой-либо причине, вы также можете использовать область system для ссылки на банку по абсолютной траектории файловой системы. Этот подход не рекомендуется, поскольку он, очевидно, влияет на переносимость.

Из документации:

зависимости с системой областей видимости всегда доступны и не ищется в хранилище. Обычно они используются для указания Maven о зависимостях, предоставляемых JDK или VM.

Вы можете ссылаться на вашу derbytools банку как зависимость системы в области видимости, как это:

<dependency> 
    <groupId>org.apache.derby</groupId> 
    <artifactId>derbytools</artifactId> 
    <version>10.4.2.0</version> 
    <scope>system</scope> 
    <systemPath>/path/to/derbytools.jar</systemPath> 
</dependency> 
Смежные вопросы