我不明白maven使用的标签的重复分组。我更习惯于行动或任务更明确的地方。使用下面列出的maven pom文件,
为什么profiles标签中有'build'部分?接下来是另一组“构建”部分?
<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>
答案 0 :(得分:1)
您似乎需要了解个人资料。
基本的maven构建有一个(或零)构建元素。在零情况下,它将标准生命周期应用于标准位置中的Java源和资源。
配置文件允许您使用不同的设置声明备用版本。运行'mvn -Pfoo'时,激活名为'foo'的配置文件。
如果要更改该配置文件中构建元素中的设置,请在配置文件中放置<build/>
元素。例如,通过更改传递给某个插件的选项。
你问,'maven clean'做什么。
'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记录了super-pom,因此告诉你默认情况下哪些插件执行绑定到这三个阶段。