В какой каталог поместить библиотеки Java для проекта Maven? - PullRequest
4 голосов
/ 22 марта 2012

Я обнаружил, что Maven подразумевает определенную структуру каталогов.Но я не понимаю отсюда: http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html, где должны быть размещены библиотеки Java, необходимые для компиляции и запуска моего кода.Я думаю, что они не должны быть помещены в 'src / main / resources', потому что ресурсы это что-то вроде изображений или около того.Также не выглядит правильным поместить их в 'src / main / java'.Если бы я не использовал maven, я бы поместил библиотеки в корневой каталог проекта lib.Но я не думаю, что для проекта Maven это будет правильно.Пожалуйста, сообщите.

UPD: Я решил проблему.Дело в том, что я установил пакеты для своих источников как src.main.myApp вместо main.myApp.Кажется, это расстроило Мэйвена.

Ответы [ 2 ]

3 голосов
/ 22 марта 2012

Maven обрабатывает зависимости вашего проекта не так, как "стандартный" Java-проект.

Вы объявляете библиотеки, от которых зависите, в pom.xml вашего проекта:

, например

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>your-project</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>

    <name>your-project-web</name>

    <dependencies>
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
            <version>1.8.5</version>
        </dependency>
    </dependencies>     
</project>

Когда вы используете команду maven для создания проекта, т.е. mvn install, она загрузит зависимости для вас и сохранит их в вашем локальном хранилище.

2 голосов
/ 22 марта 2012

В Maven вы не храните библиотеки в своем проекте.Вы указываете зависимости от этих библиотек, и они попадают в ваш локальный репозиторий.Во время сборки, если вы упаковываете библиотеки (скажем, для файла войны), они попадают в цель // WEB-INF / lib.Но в целом вся идея не в том, чтобы иметь дело с этими библиотеками или управлять ими, а просто управлять зависимостями в вашем pom-файле и забыть обо всем остальном.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...