Я начинаю читать на spring framework, где в курсе они используют maven, и уже есть вещи, которые я не понимаю, какие-либо которые не имеют общее с spring или maven, а больше с java.
Ну, первое: maven, добавив зависимость от файла pom.xml, меня загружает автоматически книжный магазин (классы) в мой проект?
Второй вопрос приходит с этим изображением:
Почему сделав проект со Спринг или maven, мне присоединяются столько папок, у которых нет никакого контента? (Эдж: src-target)
Ответ на первый вопрос да, maven он берется за то, чтобы загружать книжные магазины, которые ты объявляешь как зависимость для твоего одинокого проекта, если эти книжные магазины находят в каком-либо из центральных хранилищ maven (видеть секцию Аппровед Репоситори Hosting). Но maven он делает гораздо больше, чем это. Maven также позволяет тебе загружать шрифты и документацию этих проектов (если он состоит в том, что они доступны). Также, Maven также загрузит зависимости от книжных магазинов, которые ты показываешь как зависимость. Например, Спринг Кор 4.2.5 зависит от книжного магазина commons-codec версия 1.10 (как он появляется в Вашем файле pom.xml), если 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 (я соединил на английском). Так или иначе, здесь я предлагаю деталь для папок, которые у тебя есть в твоем проекте как изображении, которое ты показал:
mvn -Dmaven.test.skip=true
.Добавочный, назначенный по умолчанию 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>
это две отдельные секции.
первый он, если maven, добавив зависимость от файла pom.xml, меня загружает автоматически книжный магазин (классы) в мой проект?
Если, вот точно то, что он реализует.
со Спринг или maven, мне присоединяются столько папок, у которых нет никакого контента? (Эдж: src-target)
Каталог /target
он, где создаются файлы, когда ты реализуешь build!
Здесь есть список каталогов, созданных Maven, где он определяется для того, чтобы они подают (английский язык):
https://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html