mvn, maven basic
# ubuntu install maven
sudo apt install maven
# 打印当前在使用的 settings
mvn help:effective-settings
download
https://maven.apache.org/download.cgi
setting & mirror
mkdir ~/.m2 vim ~/.m2/settings.xml
https://repo.maven.apache.org/maven2
Maven 参数
-D 传入属性参数
-P 使用pom中指定的配置
-e 显示maven运行出错的信息
-o 离线执行命令,即不去远程仓库更新包
-X 显示maven允许的debug信息
-U 强制去远程参考更新snapshot包
-q for only error
参数> properties
对应一个变量值,pom.xml里面配置的有,那么如果你在命令行中 以 -Dmy.filter.value=1 的格式去配置mvn命令,那么将覆盖你pom中的值。
mvn clean -Ptrip-app,daily package -Dmy.filter.value=1 -Dttidapk.ttids=21xx00
<project>
<properties>
<my.filter.value>hello</my.filter.value>
</properties>
</project>
https://blog.csdn.net/Maxiao1204/article/details/90510176
command
# skip test, 强制更新依赖包
mvn -Dmaven.test.skip=true clean package -U
创建项目
# create common project
# mvn archetype:generate 会自动创建项目目录 project0
mvn archetype:generate -DgroupId=com.wiloon.demo -DartifactId=project0 \
-DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
# archetypeVersion 指定版本号
mvn archetype:generate -D groupId=com.wiloon.java -D artifactId=javaJpms \
-D archetypeVersion=1.4 -D archetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
# local catalog
mvn archetype:generate -DgroupId=com.wiloon.test -DartifactId=mvntest \
-DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false -DarchetypeCatalog=local
# web project
mvn archetype:generate -DgroupId=com.wiloon.mail.web -DartifactId=mailTestWeb \
-DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
mvn clean compile -Dmaven.test.skip=true org.apache.maven.plugins:maven-war-plugin:exploded -q
mvn clean compile -Dmaven.test.skip=true org.apache.maven.plugins:maven-war-plugin:exploded -U
#-U,--update-snapshots Forces a check for missing releases and updated snapshots on
mvn clean compile -U
# 指定执行某一个类的测试
mvn -Dtest=com.wiloon.Foo test
检测包冲突
mvn dependency:help
mvn dependency:analyze
mvn dependency:tree
mvn dependency:tree -Dverbose
upload jar to nexus
mvn deploy:deploy-file -Dfile=xxx.pom -DgroupId=com.wiloon -DartifactId=artifactid0 -Dversion=1.0.0 -Dpackaging=pom -DrepositoryId=repo0 -Durl=https://maven.wiloon.com/repository/snapshot/
mvn deploy:deploy-file -Dfile=xxx.jar -DgroupId=com.wiloon -DartifactId=artifactid0 -Dversion=1.0.0 -Dpackaging=jar -DrepositoryId=repo0 -Durl=https://maven.wiloon.net/repository/snapshot/
maven ojdbc6
mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.3 -Dpackaging=jar -Dfile=/home/wiloon/Downloads/ojdbc6.jar
commands
# maven war plugin
mvn clean compile -Dmaven.test.skip=true org.apache.maven.plugins:maven-war-plugin:exploded
# maven-assembly-plugin 打包
>wangyue.dev/maven/assembly/plugin
#Generates JSW based daemon wrappers.
mvn appassembler:generate-daemons
# 查看 maven 版本
mvn -v
mvn -version
mvn install
mvn install -Dmaven.test.skip=true
#wrapper
mvn package appassembler:assemble
查看 mvn 参数
mvn --help
# 指定pom文件位置
mvn -f trunk/mvntest/pom.xml install
mvn archetype:generate
#390 maven-archetype-webapp
#387 maven-archetype-quickstart
mvn clean install
mvn cobertura:cobertura
mvn surefire-report:report
mvn surefire-report:report-only
mvn pmd:pmd
mvn eclipse:clean
mvn eclipse:eclipse
-mvn package: 依据项目生成jar/war文件
mvn dependency:sources
mvn dependency:resolve -Dclassifier=javadoc
webApp: maven-archetype-webapp
-Dmvn install -Dmaven.test.skip=true <del>编译时跳过Test</del>
-Dmaven.test.failure.ignore=true <del> Set this to true to ignore a failure during testing. Its use is NOT RECOMMENDED, but quite convenient on occasion.</del>
mvn install -rf :MODULENAME
mvn clean install
mvn –version
mvn compile
mvn test
mvn test-compile
mvn package
mvn install
mvn site
mvn clean
mvn eclipse:eclipse
mvn eclipse:clean
# The Surefire report can also generate the report using its standalone goal
mvn surefire-report:report
# A HTML report should be generated in ${basedir}/target/site/surefire-report.html
-maven idea
mvn idea:idea
mvn idea:clean
#maven install jar
mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.3 -Dpackaging=jar -Dfile=/home/wiloon/Downloads/ojdbc6.jar
os-maven-plugin
os-maven-plugin 是设置各种有用属性 (从 OS 中检测的 ${os.name} 和 ${os.arch} 属性) 的 Maven 插件
Maven项目的标准目录结构
src
main
java 源文件
resources 资源文件
filters 资源过滤文件
config 配置文件
scripts 脚本文件
webapp web应用文件
test
java 测试源文件
resources 测试资源文件
filters 测试资源过滤文件
it 集成测试
assembly assembly descriptors
site Site
target
generated-sources
classes
generated-test-sources
test-classes
xxx.jar
pom.xml
LICENSE.txt
NOTICE.txt
README.txt
pom
extensions
<!-- build中的extensions是执行构建过程中可能用到的其他工lib,在执行构建的过程中被加入到classpath中。 -->
<extensions>
<extension>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</extension>
</extensions>
3.3 .user
对指定用户的配置。user configuration可以在${user.home}/.m2/settings.xml中指定。注: 该文件不是必须的,当该文件找不到时,maven会使用默认的配置。
关于该文件的具体配置可以参考: http://maven.apache.org/ref/2.0.4/maven-settings/settings.html。
3.4 配置本地Repository
本地Repository的默认值是${user.home}/.m2/repository/。可以在user configuration(即在${user.home}/.m2/setting.xml) 中改变本地Repository。
配置如下: <settings></settings>
<localRepository>/path/to/local/repo</localRepository>
3.5 配置代理
在maven2.0中,可以为http request配置代理。同样在user configuration中配置,配置如下:
<settings>
<proxy>
<id>optional</id>
true</active>
<protocol>http</protocol>
<username>proxyuser</username>
<password>proxypass</password>
<host>www.hc360.com</host>
<port>80</port>
<nonProxyHosts>local.net,some.host.com</nonProxyHosts>
</proxy>
</settings>
详见: http://maven.apache.org/guides/mini/guide-proxies.html
3.5 安全和部署配置
在一个project中,该项目将要使用哪个Repository,是在<distributionmanagement></distributionmanagement>setting.xml中指定的。然而,你却不能将用户名和
码以及其它的安全设定也放在该project中。因此,你可能会在你自己的设定中定义一个server,给它指定一个id, 该id
与project将要使用那个Repository相对应。
另外,有些repository在下载时可能需要用户名和密码,这些也可以在server element中以相同的方式指定。配置如下
<server>
<id>deploymentRepo</id>
<username>repouser</username>
<password>repopwd</password>
</server>
http://liwanchun-xd.iteye.com/blog/144047
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<pluginGroups>
</pluginGroups>
<proxies>
</proxies>
<servers>
</servers>
<mirrors>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
</mirrors>
<profiles>
</profiles>
</settings>
tomcat7-maven-plugin
mvn tomcat:run
maven-clean-plugin
The Clean Plugin only has one goal.
clean:clean attempts to clean a project’s working directory of the files that we’re generated at build-time. By default, it discovers and deletes the directories configured in project.build.directory, project.build.outputDirectory, project.build.testOutputDirectory, and project.reporting.outputDirectory.
https://maven.apache.org/plugins/maven-clean-plugin/
frontend-maven-plugin
maven plugins
http://www.infoq.com/cn/news/2011/04/xxb-maven-7-plugin
- maven-compiler-plugin [[maven-compiler-plugin#maven-compiler-plugin]]
- maven-resources-plugin [[maven-resources-plugin#maven-resources-plugin]]
- jib-maven-plugin [[jib-maven-plugin#jib-maven-plugin]]