2015-10-16 2 views
1

У меня есть сторонняя изависимая фляга, которую нужно установить для создания моего проекта. Я знаю, что это можно сделать с помощью команды установки, но мне нужно установить его, когда я создаю свой проект. Так что не нужно вручную устанавливать банку, есть ли способ сделать это?Maven установить стороннюю зависимость в процессе сборки

я нашел что-то вроде этого, чтобы установить плагин

<configuration> 
<executable>mvn</executable> 
<arguments> 
    <argument>install:install-file</argument> 
    <argument>-Dfile=${basedir}\src\main\resources\EVIPSoapServer.jar</argument> 
    <argument>-DgroupId=com.company</argument> 
    <argument>-DartifactId=EVIPSoapServer</argument> 
    <argument>-Dversion=1.0.0</argument> 
    <argument>-Dpackaging=jar</argument> 
</arguments> 

Есть ли способ установить зависимости?

+1

Есть ли причина, почему вы не можете установить эту зависимость в автономном режиме, а затем использовать его во время сборки? –

+1

@TimBiegeleisen это можно сделать, но я прошу об этом только по причине технического обслуживания. Таким образом, ручной процесс установки зависимостей может быть пропущен, при создании проекта все банки будут автоматически установлены. Возможно ли это сделать в конфигурациях maven pom? –

+0

[Документация Maven] (https://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html), по-видимому, здесь не нужна. –

ответ

1

Лучшим подходом будет создание проекта с несколькими модулями maven, а ваша сторонняя библиотека - как один модуль, а ваш проект - как другой. В корневой папке pom.xml вы можете написать последовательность сборки, и она позаботится об установке сторонней банки перед установкой вашего проекта.

Вот учебник для вас Link 1

EDIT

Из комментария, кажется, вам нужно всего лишь флягу зависимость будет доступна при установке. Для этого наилучшим подходом будет использование зависимостей в системе, а сторонняя банка сохраняется в папке внутри самой структуры проекта maven. Пример ниже. Прочтите это link. Таким образом, maven не будет проверять, существует ли банка в локальном или удаленном репозитории maven.

<dependency> 
     <groupId>javax.sql</groupId> 
     <artifactId>jdbc-stdext</artifactId> 
     <version>2.0</version> 
     <scope>system</scope> 
     <systemPath>${your.path.here}</systemPath> 
    </dependency> 
+0

Ну, что у меня есть только в банке, можно ли добавить банки как модули? –

+1

Отредактирован ответ. Вы можете использовать зависимую от системы зависимость. Убедитесь, что банка находится внутри вашего проекта. Где-то внутри lib. – aksappy

+0

Я пробовал эту опцию, после этого меняет мой проект. Но во время выполнения исключения для исключения я получаю NoClassDefFoundError. Я делаю что-то неправильно здесь? –

Смежные вопросы