转maven之前学习了一下相关知识,做笔记记录一下:
笔记:
1、maven的目录结构为:不注释的为默认生成的
src
main
java
-package //为自己项目的包名
resource
static
templates
properties
test
java
-package //为自己项目的包名
src
main
webapp //下面可以放前端页面的内容
WEB-INF
pom.xml
2、常用命令
mvn -v :版本号
mvn complie 编译
mvn test 单元测试
mvn clean 删除target
mvn package 打包项目
mvn install 安装到本地仓库
快速创建项目命令
mvn archetype:generate 按提示添加
mvn archetype:generate -DgroupId=com.safein.nea -DartifactId=nea -DarchetypeArtifactId=maven-archetype-webapp
//maven-archetype-webapp:web项目
3、修改全球仓库到国内镜像仓库
修改路径:apache-maven-3.3.9->lib->maven-model-builder.jar->pom.xml
4、更改本地仓库路径
apache-maven-3.3.9->conf->setting.xml
添加<localRepository>E:/mvnRespo</localRepository>
5、版本
第一个为大版本号 第二个为分支版本号 第三个为小版本号
0.0.1snapshot
snapshot快照
alpha内部测试
beta公测
Release稳定
GA正式发布
6、web项目
pom的配置
变量://下面使用时已${spring.version}这种形式引用
<properties>
<commons-lang.version>2.6</commons-lang.version>
<slf4j.version>1.6.1</slf4j.version>
<spring.version>3.2.2.RELEASE</spring.version>
</properties>
依赖管理 管理包的冲突
scope:provided在编译时和测试时使用
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-framework-bom</artifactId>
<version>${spring.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
tomcat:<build>
<finalName>webdemo</finalName>
<plugins>
<!--可以去官网拷贝maven的配置-->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>8181</port>
</configuration>
<executions>
<execution>
<!--在打包成功后使用tomcat.run来运行tomcat服务-->
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
6、cd 到项目文件夹中mvn tomcat:run 如果没有jar会下载tomcat 的jar包
实际应用中遇到的问题记录下来:
1、利用eclipse中的maven插件创建web项目时出错,只好改用命令创建(命令请参考上面的笔记)
2、项目创建好后,只生成了主目录,需要自己创建对应的目录(可以写个helloworld和测试类进行测试)
3、cmd进入项目目录,运行mvn compile,编译成功(前提:配置好maven的环境变量)
4、在pom.xml添加依赖,这需要一个一个缕了,可以到官网https://mvnrepository.com去查找配置,如下图
5、添加完成之后到eclipse中发现有很多类报错,提示@Override需要去掉,这是因为maven默认的jdk是1.5版本,需要选中右键选中build path ,去修改jdk版本(1.6版本以上开始支持注解,所以@Override会报错),虽然eclipse不报错,但mvn compile时还会报错,才发现需要修改pom里面的maven默认的jdk版本
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
6、eclipse中compile,很多包都下载不下来,最后改用cmd里面运行mvn compile去下载
7、编译时报了很多错:
错误: 非法字符: '\ufeff'Error:(1, 10)
错误: 需要class, interface或enum
网上搜的结果是文件不是utf-8,查看属性确实不是utf-8,修改之后还是报错,发现原来utf-8是带有bom的,eclipse里面修改不了,只好Notepad++修改编码(发现都是一个功能的controller,service,dao 的文件,强调开发时确定为utf-8编码)
待续。。。。