пятница, июля 10, 2009

maven 2 и отсутствие библиотеки в репозитории

Многие java-проекты собираются с помощью ant или ivy и они отсутствуют в публичных maven-репозиториях или публикуются там с большими опозданиями. Чтобы поместить сборку в локальный репозиторий используется mvn install:install-file, например:
mvn install:install-file -DgroupId=com.atg -DartifactId=json-taglib -Dversion=0.4.1 -Dfile=json-taglib-0.4.1.jar -Dpackaging=jar -DgeneratePom=true
Но я больше склоняюсь к тому, чтобы в таких случаях помещать библиотеку в проект, и в pom.xml в зависимостях указывать scope=system и в systemPath=относильный путь к файлу.

В случае web-проекта было бы так:
        <dependency>
<groupId>com.atg</groupId>
<artifactId>json-taglib</artifactId>
<version>0.4.1</version>
<scope>system</scope>
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/json-taglib-0.4.1.jar</systemPath>
</dependency>


файл поместить соответственно в /src/main/webapp/WEB-INF/lib/

Мой список блогов