заставить Maven скопировать зависимости в target / lib - PullRequest
233 голосов
/ 19 сентября 2008

Как мне скопировать зависимости времени выполнения моего проекта в папку target/lib?

Как сейчас, после mvn clean install папка target содержит только jar моего проекта, но не содержит никаких зависимостей времени выполнения.

Ответы [ 15 ]

2 голосов
/ 19 сентября 2008

Если вы создадите свой проект типа war или ear, то maven скопирует зависимости.

1 голос
/ 01 февраля 2012

Это сложное решение для встраивания тяжелых зависимостей, но Сборочный плагин Maven помогает мне.

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

<project>
    <build>
        <plugins>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.2.2</version>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
1 голос
/ 22 сентября 2010

Просто чтобы изложить то, что уже было сказано вкратце. Я хотел создать исполняемый файл JAR, который включал бы мои зависимости вместе с моим кодом. Это сработало для меня:

(1) В пом, под , я включил:

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.2-beta-5</version>
    <configuration>
        <archive>
            <manifest>
                <mainClass>dk.certifikat.oces2.some.package.MyMainClass</mainClass>
            </manifest>
        </archive>
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
    </configuration>
</plugin>

(2) Запуск сборки компиляции mvn: сборка создала нужный my-project-0.1-SNAPSHOT-jar-with-dependencies.jar в целевой папке проекта.

(3) Я запустил JAR с помощью java -jar my-project-0.1-SNAPSHOT-jar-with-dependencies.jar

1 голос
/ 19 сентября 2008

Вы можете использовать Shade Plugin , чтобы создать Uber JAR, в котором вы можете объединить все ваши сторонние зависимости.

0 голосов
/ 17 мая 2011

Если у вас возникли проблемы, связанные с зависимостями, которых нет в файле WEB-INF / lib при работе на сервере Tomcat в Eclipse, взгляните на это:

ClassNotFoundException DispatcherServlet при запуске Tomcat (зависимости Maven, не скопированные в wtpwebapps)

Вы просто должны были добавить зависимости Maven в Свойства проекта> Сборка развертывания.

...