在pom.xml的build标签配置。
源代码路径约定:
<!-- 构建项目需要的信息 -->
<build>
<!--源码约定-->
<!-- java源代码的路径 -->
<sourceDirectory>${basedir}/src/main/java</sourceDirectory>
<!-- 测试java源代码的路径。 -->
<testSourceDirectory>${basedir}/src/test/java</testSourceDirectory>
<!-- 脚本代码的路径(如:shell,bat脚本)。注:目前在Maven中没有使用,已经过时了 -->
<!--<scriptSourceDirectory>${basedir}/src/main/scripts</scriptSourceDirectory>-->
</build>
资源文件约定和过滤:
<!-- 构建项目需要的信息 -->
<build>
<!--资源文件过滤-->
<!-- 这个元素描述了项目相关的所有资源路径列表,例如和项目相关的属性文件(配置文件),这些资源最终被包含在最终的打包文件里。 -->
<resources>
<!-- 这个元素描述了项目相关或测试相关的所有资源路径 -->
<resource>
<!-- 存放原始资源的目录,该路径相对POM路径 -->
<directory>src/main/resources</directory>
<!-- 描述了资源的目标路径。存放资源文件处理完成后的文件 -->
<targetPath>${project.build.directory}/classes</targetPath>
<!-- 是否使用参数值代替参数名。参数值取自pom文件的properties标签或者特定文件里配置的属性,定文文件在pom文件的filters元素里列出。 -->
<filtering>true</filtering>
<!-- 包含的模式列表,例如**/*.xml. -->
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
<!-- 排除的模式列表,例如**/*.xml -->
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
<!-- 当project.resources.resource.filtering标签开关打开时,使用到的过滤器属性文件列表 -->
<filters>
<filter>filters/filter1.properties</filter>
</filters>
</build>
编译打包路径约定:
<!-- 构建项目需要的信息 -->
<build>
<!-- java被编译后的class文件存放的目录。 -->
<outputDirectory>${basedir}/target/classes</outputDirectory>
<!-- 测试java被编译后的class文件存放的目录。 -->
<testOutputDirectory>${basedir}/target/test-classes</testOutputDirectory>
<!--打包约定-->
<!-- 执行构建时默认的goal或phase,如jar:jar或者package等 -->
<defaultGoal>install</defaultGoal>
<!-- 构建产生的所有文件存放的目录,默认为${basedir}/target目录 -->
<directory>${basedir}/target</directory>
<!-- 产生的构件的文件名,即若是打成war包,war包文件名:${finalName}.war,默认值是${artifactId}-${version}。-->
<finalName>${artifactId}-${version}</finalName>
</build>
构建功能扩展:
用于添加扩展Maven构建功能的插件。
<!-- 构建项目需要的信息 -->
<build>
<!-- 使用来自该项目的一系列构建扩展 -->
<extensions>
<!-- 描述使用到的构建扩展。 -->
<extension>
<!-- 构建扩展的groupId -->
<groupId>{groupId}</groupId>
<!-- 构建扩展的artifactId -->
<artifactId>{artifactId}</artifactId>
<!-- 构建扩展的版本 -->
<version>{version}</version>
</extension>
</extensions>
</build>
例:
- 通过ssh部署项目:(现在一般用 Jenkins处理,很少这么干的了)
-
<project> [...] <distributionManagement> <repository> <id>proficio-repository</id> <name>Proficio Repository</name> <url>scpexe://sshserver.yourcompany.com/deploy</url> </repository> </distributionManagement> <build> <extensions> <extension> <groupId>org.apache.maven.wagon</groupId> <artifactId>wagon-ssh-external</artifactId> <version>1.0-alpha-6</version> </extension> </extensions> </build> [...] </project>
-
- 以FTP方式部署:(现在一般用 Jenkins处理,很少这么干的了)
-
<project> [...] <distributionManagement> <repository> <id>proficio-repository</id> <name>Proficio Repository</name> <url>ftp://ftpserver.yourcompany.com/deploy</url> </repository> </distributionManagement> <build> <extensions> <extension> <groupId>org.apache.maven.wagon</groupId> <artifactId>wagon-ftp</artifactId> <version>1.0-alpha-6</version> </extension> </extensions> </build> [...] </project>
-
构建插件:
直接参与构建流程的插件
<!-- 构建项目需要的信息 -->
<build>
<!-- 构建过程中所用到的插件列表 -->
<plugins>
<!-- plugin元素包含描述插件所需要的信息。 -->
<plugin>
<!-- 插件在仓库里的group ID -->
<groupId>{groupId}</groupId>
<!-- 插件在仓库里的artifact ID ,格式一般如下-->
<artifactId>{pluginpregoal}-maven-plugin</artifactId>
<!-- 被使用的插件的版本(或版本范围) -->
<version>version</version>
<!-- 是否从该插件下载Maven扩展(例如打包和类型处理器),由于性能原因,只有在真需要下载时,该扩展插件才会下载。 -->
<extensions>true/false</extensions>
<!-- 在构建生命周期中执行一组目标的配置。每个目标可能有不同的配置。 -->
<executions>
<!-- execution元素包含了插件执行需要的信息 -->
<execution>
<!-- 执行目标的标识符,用于标识构建过程中的目标,或者匹配继承过程中需要合并的执行目标 -->
<id></id>
<!-- 绑定了目标的构建生命周期阶段,如果省略,目标会被绑定到源数据里配置的默认阶段 -->
<phase></phase>
<!-- 使用该插件执行配置的goals -->
<goals>
<goal>repackage</goal>
</goals>
<!-- 配置是否被传播到子POM,默认true-->
<inherited>true/false</inherited>
<!-- 该插件所需要的特殊配置,见使用插件的文档,在此命令中执行的特有配置,使用此goals时,覆盖plugin.configuration的配置 -->
<configuration>
...
</configuration>
</execution>
</executions>
<!-- 项目引入插件所需要的额外依赖,如mysql驱动 -->
<dependencies>
<!-- 参见dependencies/dependency元素 -->
<dependency>
</dependency>
</dependencies>
<!-- 任何配置是否被传播到子项目,默认true -->
<inherited>true/false</inherited>
<!-- 该插件所需要的特殊配置,见使用插件的文档 -->
<configuration>
...
</configuration>
</plugin>
</plugins>
</build>
构建插件管理:
用来给子模块使用的插件配置,类似 dependencyManagement:
<build>
<!-- 子项目可以引用的默认插件信息。该插件配置项直到被引用时才会被解析或绑定到生命周期。给定插件的任何本地配置都会覆盖这里的配置 -->
<pluginManagement>
<!-- 使用的插件列表 。 -->
<plugins>
<!-- plugin元素包含描述插件所需要的信息。见project.plugins.plugin标签-->
<plugin>
...
</plugin>
</plugins>
</pluginManagement>
</build>
官方插件配置:
Maven官方插件,见:http://maven.apache.org/plugins/index.html


第三方插件:请自行百度并查看对应的第三方插件的官方文档,Maven的构建插件的特色配置大多数情况下放到configuration标签里。
4247

被折叠的 条评论
为什么被折叠?



