Декларативный синтаксис / язык maven, я не понимаю дубликаты тегов сборки - PullRequest
0 голосов
/ 31 марта 2011

Я не понимаю повторяющуюся группировку тегов, которые использует maven. Я более привык к тому, что действие или задачи более явные. С файлом maven pom, указанным ниже,

Почему в теге профилей есть раздел «сборка»? И затем к нижней части есть еще один набор разделов «сборка»?

<profiles>
        <profile>
            <id>local</id>          
            <activation>
                <os>
                    <family>windows</family>
                </os>
            </activation>
<build>
                <plugins>
                    <!-- Clean all jars before build -->
                    <plugin>
                        <artifactId>maven-clean-plugin</artifactId>

...

<build>
        <finalName>${project.artifactId}</finalName>
        <sourceDirectory>src</sourceDirectory>
        <testSourceDirectory>test</testSourceDirectory>
        <resources>
...
...
    <plugins>
            <!-- Compiler plugin -->
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>${java.source.version}</source>
                    <target>${java.target.version}</target>
                </configuration>
            </plugin>

        </plugins>

    </build>
</project>

1 Ответ

1 голос
/ 31 марта 2011

Похоже, вам нужно понимать профили.

Базовая сборка maven имеет один (или ноль) элементов сборки.В нулевом случае он просто применяет стандартный жизненный цикл к java-источникам и ресурсам в стандартных местоположениях.

Профили позволяют объявлять альтернативные сборки с различными настройками.Когда вы запускаете 'mvn -Pfoo', вы активируете профиль с именем 'foo'.

Вы помещаете элемент <build/> в профиль, когда хотите изменить настройки элемента сборки в этом профиле.Например, изменив параметры, передаваемые некоторому плагину.

Вы спросили: «Что делает« maven clean »?

«чистый» - это название жизненного цикла.Вы найдете это в http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference.

. Чистый жизненный цикл состоит из трех этапов.Когда вы говорите «mvn clean», он запускает все исполнения плагинов, которые связаны с этими тремя фазами, в указанном порядке.

http://maven.apache.org/guides/introduction/introduction-to-the-pom.html#Super_POM документирует супер-помпу, и поэтому сообщает вам, какой плагинвыполнение по умолчанию связано с этими тремя фазами.

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