文章目录
1、形式引用属性(值的占位符)
- env.propertyName:系统的环境变量
- java.propertyName:- Java的系统属性。- java.lang.System.getProperties()能获取到的属性,- pom中同样可以引用
- settings.propertyName:- Maven本地配置文件- settings.xml中- settings根元素下的属性
- project.propertyName:当前- pom文件中- project根元素下的属性
- 自定义<properties>:自定义- <properties>属性中的属性
例如
// 系统环境变量PATH
${env.PATH}
// Java系统属性home
${java.home}
// settings文件的localRepository
${settings.localRepository}
// project中version
${project.version}
// 自定义<properties>
${maven.compiler.source}
2、执行 main 方法
# 执行指定全限定名下的java类
mvn exec:java -Dexec.mainClass="xxx.xxx.xxx.XXX"
3、Settings 文件
<settings>
    <!-- 本地仓库的地址,存放jar包-->
    <localRepository>${user.home}/.m2</localRepository>
    <mirrors>
    	<mirror>
        	<id>nexus-aliyun</id>
            <mirrorOf>central</mirrorOf>
            <name>Nexus aliyun</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public</url>
        </mirror>
    </mirrors>
</settings>
4、命令参数
4.1、-D 传入参数
# 执行打包操作时,跳过单元测试
mvn package -Dmaven.test.skip=true
4.2、-P 使用指定的 Profile 配置
首先,假设pom.xml文件配置如下
<!--打包环境配置:开发环境 测试环境 正式环境-->
<profiles>
    <profile>
        <id>dev</id>
        <properties>
            <env>dev</env>
        </properties>
        <!--未指定环境时,默认打包dev环境-->
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>
    <profile>
        <id>test</id>
        <properties>
            <env>test</env>
        </properties>
    </profile>
    <profile>
        <id>prod</id>
        <properties>
            <env>prod</env>
        </properties>
    </profile>
</profiles>
<build>
    <!--对于项目资源文件的配置放在build中-->
    <resources>
        <resource>
            <directory>src/main/resources/${env}</directory>
        </resource>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.xml</include>
                <include>**/*.properties</include>
                <include>**/*.tld</include>
            </includes>
            <filtering>false</filtering>
        </resource>
    </resources>
</build>
此时,使用命令,标识打包本地环境,并跳过单元测试
mvn package -Pdev -Dmaven.test.skip=true
5、Web 插件
5.1、Jetty 插件
<build>
    <finalName>Demo</finalName>
    <plugins>
        <plugin>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>maven-jetty-plugin</artifactId>
            <version>6.1.25</version>
            <configuration>
                <!--热部署,每10秒扫描一次-->
                <scanIntervalseconds>10</scanIntervalseconds>
                <!--可指定当前项目的站点名-->
                <contextPath>/test</contextPath>
                <connectors>
                    <connector implementation="org.mortbay.jetty.nio.selectchannelconnector">
                        <!--设置启动的端口号-->
                        <port>9090</port>
                    </connector>
                </connectors>
            </configuration>
        </plugin>
    </plugins>
</build>
5.2、Tomcat 插件
<build>
    <finalName>Demo</finalName>
    <plugins>
        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.1</version>
            <configuration>
                <!--启动端口默认:8080-->
                <port>8081</port>
                <!--项目的站点名,即对外访问路径-->
                <path>/test</path>
                <!--字符集编码默认:ISO-8859-1-->
                <uriEncoding>UTF-8</uriEncoding>
                <!--服务器名称-->
                <server>tomcat7</server>
            </configuration>
        </plugin>
    </plugins>
</build>
6、Maven 仓库
6.1、私服
私服的在maven中的配置
<repositories>
    <repository>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
        <id>public</id>
        <name>Public Repositories</name>
        <url>http://192.168.0.96:8081/content/groups/public/</url>
    </repository>
    <repository>
        <id>getui-nexus</id>
        <url>http://mvn.gt.igexin.com/nexus/content/repositories/releases/</ur1>
    </repository>
</repositories>
私服的好处
- 降低中央仓库的负荷
- 节省自己的外网带宽
- 加速maven构建
- 提高稳定性
- 部署第三方控件
6.2、其他公共库
<mirror>
    <id>nexus-aliyun</id>
    <mirrorOf>central</mirrorOf>
    <name>Nexus aliyun</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>










