-
maven
常用命令
注:需要在Maven
项目的根目录下执行
命令 | 描述 |
---|---|
mvn -v (mvn -version ) |
显示版本信息 |
mvn clean |
清理项目生产的临时文件,一般是模块下的 target 目录 |
mvn compile |
编译源代码,一般编译模块下的 src/main/java 目录 |
mvn package |
项目打包工具,会在模块下的 target 目录生成 jar 或 war 等文件 |
mvn test |
测试命令,或执行 src/test/java/ 下 junit 的测试用例 |
mvn install |
将打包的 jar/war 文件复制到本地仓库中,供其他模块使用 |
mvn deploy |
将打包的文件发布到远程参考,提供其他人员进行下载依赖 |
mvn site |
生成项目相关信息的网站 |
mvn eclipse:eclipse |
将项目转化为 Eclipse 项目 |
mvn dependency:tree |
打印出项目的整个依赖树 |
mvn archetype:generate |
创建 Maven 的普通 java 项目 |
mvn tomcat7:run |
在 tomcat 容器中运行 web 应用 |
mvn jetty:run |
调用 Jetty 插件的 Run 目标在 Jetty Servlet 容器中启动 web 应用 |
-
Maven
参数
参数 | 作用 |
---|---|
-D |
传入属性参数 |
-P |
使用 pom 中指定的配置 |
-e |
显示 maven 运行出错的信息 |
-o |
离线执行命令,即不去远程仓库更新包 |
-X |
显示 maven 允许的 debug 信息 |
-U |
强制去远程参考更新 snapshot 包 |
示例:
1、创建Maven
的普通java
项目:
mvn archetype:create -DgroupId=packageName -DartifactId=projectName
2、创建Maven
的Web
项目:
mvn archetype:create -DgroupId=packageName -DartifactId=webappName-DarchetypeArtifactId=maven-archetype-webapp
3、打包时跳过单元测试
mvn package -Dmaven.test.skip=true
4、部署项目时跳过单元测试
mvn deploy -Dmaven.test.skip=true
一般项目开发需要多个环境:开发、测试、预发、正式4个环境,可在
pom.xml
中进行配置
<profiles>
<!-- 开发环境 -->
<profile>
<id>dev</id>
<properties>
<current.env>dev</current.env>
</properties>
<activation>
<!--指定该环境为默认配置-->
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<!-- 测试环境 -->
<profile>
<id>qa</id>
<properties>
<current.env>qa</current.env>
</properties>
</profile>
<!-- 预发 -->
<profile>
<id>pre</id>
<properties>
<current.env>pre</current.env>
</properties>
</profile>
<!-- 正式 -->
<profile>
<id>prod</id>
<properties>
<current.env>prod</current.env>
</properties>
</profile>
</profiles>
<build>
<filters>
<filter>config/${env}.properties</filter>
</filters>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
...
</build>
-
profiles
定义了各个环境的变量ID
,filters
中定义了变量配置文件的地址,其中地址中的环境变量就是上面profile
中定义的值,resources
中是定义哪些目录下的文件会被配置文件中定义的变量替换 - 通过
maven
可以实现按不同环境打包部署:
mvn package -Pdev -Dmaven.test.skip=true
打包本地环境,并跳过单元测试