Как добавить файлы jar, необходимые для компиляции проекта maven, если они никогда не создавались с помощью pom? - PullRequest
5 голосов
/ 19 мая 2010

Я только начинаю с maven, начиная с многолетней работы с Ant.Сейчас я пытаюсь выполнить простую задачу - создать простой проект, требующий от поставщика несколько библиотек.У меня есть банки в src \ main \ resources \ VENDORNAME.Когда я запускаю mvn compile, происходит сбой при компиляции, говоря, что библиотеки не существуют.Кажется, я не могу добавить их в качестве зависимостей, потому что я не знаю их номер версии и, поскольку они являются собственностью, я не могу найти их в ibiblio или где-либо еще.Без этих банок я не смогу скомпилировать мои классы.
Есть ли способ использовать баночки, которые не следовали соглашению Maven?Возможно, я не правильно понимаю Maven, поэтому любые указания приветствуются.Большое спасибо за любые ответы.

Ответы [ 2 ]

4 голосов
/ 19 мая 2010

Я бы написал ваш собственный файл POM для этих jar-файлов и добавил их в ваш репозиторий. Не должно быть ничего фантастического, просто файл POM. Таким образом, вы можете включить их, не нарушая "Путь Maven".

Если вы хотите, чтобы Maven автоматически сгенерировал его для вас и установил его в локальный репозиторий, вы можете использовать эту команду:

mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> \
    -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>
0 голосов
/ 21 мая 2010

Поместить внешние нематериализированные зависимости в репозиторий - действительно лучший способ - вы и другие можете повторно использовать их в других проектах и ​​т. Д. Однако, если это невозможно, вы также можете ссылаться на зависимости, хранящиеся в диск (возможно, извлеченный из вашей системы контроля версий, как в те старые, уродливые возрасты). Вот пример POM, ссылающегося на JAR, хранящийся в папке lib / проекта:

<project ...>
...
        <dependency>
            <groupId>com.ascentialsoftware</groupId>
            <artifactId>tr4j</artifactId>
            <version>8.1</version>
            <scope>system</scope>
            <systemPath>${basedir}/lib/tr4j.jar</systemPath>
        </dependency>
...
</project>

эм, я только сейчас заметил, что это решение находится в ответе "Maven: добавить зависимость в банку по относительному пути", который связан с этим постом - вы должны проверить его для более углубленного обсуждение. Однако я оставляю это здесь, поскольку это более заметно, чем ссылка.

...