1.Maven 下载地址: http://maven.apache.org/docs/3.3.9/release-notes.html
下载解压,路径如:D:Toolsmavenapache-maven-3.3.9
2.设置环境变量
变量名:M2_HOME
变量值:D:Toolsmavenapache-maven-3.3.9
找到path
在环境变量值尾部加入:;%M2_HOME%in;
检查环境:
在命令行输入 mvn -v
3.修改仓库位置
新建路径如:E:/maven/repo
apache-maven-3.3.9conf目录下的setting.xml文件,
设置路径
<localRepository>E:/maven/repo</localRepository>
4. 创建maven项目 E:/maven下运行如下命令
mvn archetype:generate -DgroupId=com.chongshi.test -DartifactId=hello -DpackageName=com.chongshi.test -Dversion=1.0
5. 编译项目代码
在命令提示符下进入到我们的创建的项目目录(E:mavenhello)下,执行:mvn clean compile
6. 执行如下命令,才可以导入Eclipse
mvn eclipse:eclipse
7.问题补充。
我用的是MyEclipse,我的Maven库不在默认的地方,如何修改这个环境变量?
说明:安装完MyEclipse后,会自动有了M2_REPO环境变量,现在我想修改它,但是显示是"non modifiable","Edit"按钮是灰色的
修改Window->preferences->maven->user settings-> 在这里选择正确 的setting.xml的路径即可,完成后,M2_REPO的路径也会随着修改。
8. 创建web项目
命令如下:
mvn archetype:generate -DgroupId=com.chongshi.test -DartifactId=mywebapps -DarchetypeArtifactId=maven-archetype-webapp -Dversion=1.0
只是比普通项目多加一个参数DarchetypeArtifactId
定位到创建项目的目录下构建成eclipse项目:
F:mywebapp>mvn eclipse:eclipse
9.常见问题
1)编码 GBK 的不可映射字符
编码 GBK 的不可映射字符
用记事本打开java源文件。
然后另存为,选择ANSI
覆盖即可
10、使用Maven打包
D:workspacemonitor_tuning>mvn clean package -Dmaven.test.skip
错误1:Fatal errorcompiling 无效的标记
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <!-- compile for Java 1.8 --> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> </configuration> </plugin>
将环境变量设置为Java 8和工程设置的Java8保持一致
错误2: 程序包jdk.internal.org.objectweb.asm不存在
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <!-- compile for Java 1.8 --> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> <compilerArgs> <!-- 过期的方法的警告--> <arg>-Xlint:deprecation</arg> </compilerArgs> <compilerArguments> <!-- 是否输出所有的编译信息(包括类的加载等)--> <!--<verbose />--> <!-- 解决maven命令编译报错,因为rt.jar 和jce.jar在jre的lib下面,不在jdk的lib下面, 导致maven找不到(java7以后会出现这个问题),将这2个jar包拷贝到jdk的lib下面估计也好使--> <bootclasspath>${java.home}lib t.jar;${java.home}libjce.jar</bootclasspath> </compilerArguments> </configuration> </plugin>
最后生成war或者jar文件。
11、Scope含义
scope有以下几种
分类 | 含义 |
compile | 默认compile。参与编译,测试,运行。打包的时候包进去。 |
test | 仅参与测试,包括测试代码编译和执行。如junit |
runtime | 不参与编译,参与测试和运行 |
provided | 打包的时候可以不包进去。别的设施(web container)会提供 |
system | 和provided相同,不从maven仓库抓,从本机文件拿。一定会配合systemPath使用 |
12、Maven在Liunx下的安装
下载maven wget https://mirror.bit.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.zip
解压: unzip apache-maven-3.6.3-bin.zip