Спринг и maven в java

Я начинаю читать на spring framework, где в курсе они используют maven, и уже есть вещи, которые я не понимаю, какие-либо которые не имеют общее с spring или maven, а больше с java.

Ну, первое: maven, добавив зависимость от файла pom.xml, меня загружает автоматически книжный магазин (классы) в мой проект?

Второй вопрос приходит с этим изображением:

Proyecto

Почему сделав проект со Спринг или maven, мне присоединяются столько папок, у которых нет никакого контента? (Эдж: src-target)

8
задан 04.04.2016, 02:53
2 ответа

Ответ на первый вопрос да, maven он берется за то, чтобы загружать книжные магазины, которые ты объявляешь как зависимость для твоего одинокого проекта, если эти книжные магазины находят в каком-либо из центральных хранилищ maven (видеть секцию Аппровед Репоситори Hosting). Но maven он делает гораздо больше, чем это. Maven также позволяет тебе загружать шрифты и документацию этих проектов (если он состоит в том, что они доступны). Также, Maven также загрузит зависимости от книжных магазинов, которые ты показываешь как зависимость. Например, Спринг Кор 4.2.5 зависит от книжного магазина commons-codec версия 1.10 (как он появляется в Вашем файле pom.xml), если Maven обнаруживает, что у тебя нет счастья, установленный книжный магазин локально, тогда, он загрузит ее из-за тебя.

Подробно описывая немного, когда ты объявляешь зависимость от Maven, он реализует следующее:

  • Ищи, если книжный магазин находится в твоем локальном хранилище maven, обычно помещенный в <carpeta de usuario>/.m2. В Windows он был бы C:\Users\<tu usuario>\.m2. В Мак он был бы /Users/<tu usuario>/.m2, и я схватил.
  • В случае когда он не будет там, он загрузит книжный магазин центрального хранилища.

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


Второй вопрос отвечен и довольно подробно описан во Введении в Стандартный Рисунок Каталогов Maven (я соединил на английском). Так или иначе, здесь я предлагаю деталь для папок, которые у тебя есть в твоем проекте как изображении, которое ты показал:

  • src: Папка для всех шрифтов и ресурсов, использованных в проекте
    • main: Шрифты и главные ресурсы проекта. По умолчанию, элементы, помещенные в этой папке присоединятся в устройство, произведенное (jar, war, и т.д.)
    • java: Шрифты проекта. По умолчанию, в произведенном устройстве они присоединяются составленные файлов Java (.java) помещенные здесь, Любой другой тип файла (p.e. xml) они будут проигнорированы. Если будет какая-то ошибка компиляции, устройство не произведется.
    • resources: Ресурсы проекта. Здесь содержатся файлы конфигурации и другие добавочные ресурсы, которые нужно использовать в проекте. Например: изображения (jgp, pgn), файлы конфигурации (properties, xml, json), шаблоны (xlsx, docx, pdf), между другими. По умолчанию, все файлы хранятся прямо в произведенном устройстве.
    • тест: Шрифты и ресурсы, использованные в течение фазы доказательств проекта. По умолчанию, Maven не добавит эти файлы в произведенном устройстве.
    • java: Шрифты доказательств проекта. Эти шрифты будут составлены вместе со шрифтами, помещенными в src/main/java. Составленные не присоединяются в произведенном устройстве. Однако, если будет существовать ошибка компиляции, устройство не произведется. Чтобы это предотвращать, ты можешь показывать в твоем IDE, что не использовалась фаза доказательств или с командной строки использовать mvn -Dmaven.test.skip=true.
  • target: Он содержит все элементы, произведенные, выполнив Maven (mvn) на проекте. Он это включает: файлы, произведенные во время компиляции, составленные, конечное устройство, произведенное (jar, war, и т.д.)

Добавочный, назначенный по умолчанию Maven будет способствовать тому, чтобы твой проект использовал Java, 5 (как он появляется в изображении, твой проект использует Java 5 или J2SE 1.5). Чтобы предотвращать это и использовать твою излюбленную версию Java (6, 7, 8, 9?) ты должен добавлять plugin под секцией build в твоем файле pom.xml:

<properties>
    <!-- En mi caso, declaro utilizar Java 8 en el proyecto -->
    <java.version>1.8</java.version>
</properties>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.3</version>
            <configuration>
                <source>${java.version}</source>
                <target>${java.version}</target>
            </configuration>
        </plugin>
    </plugins>
</build>

Имей в виду, что <build> и <dependencies> это две отдельные секции.

7
ответ дан 24.11.2019, 14:39

первый он, если maven, добавив зависимость от файла pom.xml, меня загружает автоматически книжный магазин (классы) в мой проект?

Если, вот точно то, что он реализует.

со Спринг или maven, мне присоединяются столько папок, у которых нет никакого контента? (Эдж: src-target)

Каталог /target он, где создаются файлы, когда ты реализуешь build!

Здесь есть список каталогов, созданных Maven, где он определяется для того, чтобы они подают (английский язык):

https://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html

3
ответ дан 24.11.2019, 14:39