Maven学习
1. Ant
项目构建工具
在项目运行编辑打包等过程都需要依赖于ant构建工具
2. 分布式
把一个完整的项目拆分成多个项目,把拆分的项目分别部署到对应的服务器中的过程叫做分布式项目部署
将项目包换成一个单独项目
3. Maven
3.1. 网址
https://mvnrepository.com/tags/maven
基于Ant的构建工具,功能更加强大
3.2. 配置Maven
http://maven.apache.org/download.cgi

解压文件
eclipse中装配maven
打开偏好设置,添加下载的maven 点击Apply

配置settings.xml
在解压的maven文件夹下新建repository文件夹,用于承接中央仓库中下载的内容

点击open File
配置settings.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| <localRepository>/Users/Learning/Resource/workspace/myEclipse/apache-maven-3.6.2/repository</localRepository>
<mirror> <id>alimaven</id> <mirrorOf>central</mirrorOf> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> </mirror>
<profile> <id>jdk-1.8</id>
<activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk> </activation>
<repositories> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> </repositories> </profile>
|
3.3. 新建Maven项目

创造一个简单的maven项目

最终项目列表

src/main/java 真实目录的快捷目录,java代码
src/main/resources 快捷目录 存放配置文件,最终编译后放到classes文件夹中
src/test/java 测试java代码
src/test/resources 测试配置文件
pom.xml maven配置文件(最重要)
新建test类
1 2 3 4 5
| public class test { public void out() { System.out.println("Hello"); } }
|
再新建一个maven项目Test2, 打开pom.xml 关联Test项目
1 2 3 4 5 6 7
| <dependencies> <dependency> <groupId>com.runaccpeted</groupId> <artifactId>Test</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> </dependencies>
|
在Test2项目下自动关联Test

调用, 还可以查看源码
1 2 3 4 5 6
| public class Main { public static void main(String[] args) { test t = new test(); t.out(); } }
|
3.4. maven项目关系
3.4.1. 依赖
项目中自动下载另一个项目依赖的其他项目
3.4.2. 继承
父项目必须为pom类型,父项目中看不到子项目,只有逻辑上的父子关系
子项目为jar或war ,子项目中多了parent标签,出现警告子项目的groupId和version可以和父项目相同
1 2 3 4 5
| <parent> <groupId>com.runaccpeted</groupId> <artifactId>Parent</artifactId> <version>0.0.1-SNAPSHOT</version> </parent>
|
3.4.3. 聚合

前提是继承关系,父项目包含子项目
子项目类型必须是Maven Module,但仍然是一个独立的项目
父项目中多了modules标签
1 2 3
| <modules> <module>children</module> </modules>
|
3.5. dependencyManagement
写在父项目中
子项目只需要有坐标的groupId和artifactid,version继承自父项目
在父项目中声明properties把所有版本号进行统一管理
父项目
1 2 3 4 5 6 7 8 9 10 11 12
| <properties> <spring-version>4.3.13.RELEASE</spring-version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring-version}</version> </dependency> </dependencies> </dependencyManagement>
|
子项目
1 2 3 4 5 6
| <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> </dependency> </dependencies>
|
4. 创建war项目
maven项目类型为war
在main/webapp 下新建META-INF和WEB-INF,web.xml,index.jsp

在pom.xml中添加三个jar
< scope>provided</ scope> 有效范围 provided表示编译期生效,不会打包发布到tomcat
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| <dependencies> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.0.1</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2</version> <scope>provided</scope> </dependency> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> </dependencies>
|
tomcat插件
1 2 3 4 5 6 7 8 9 10 11
| <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <port>8080</port> <path>/</path> </configuration> </plugin>
|
启动项目
Run As –> Maven build
Goals处填写 clean tomcat7:run

tomcat部署位置
Web/src/main/webapp/
5. 编译java文件夹的xml文件
maven默认只把src/main/resources里面的非java文件进行编译到classes中
希望src/main/java中的xml页编译到classes需要添加
1 2 3 4 5 6 7 8 9 10 11 12 13
| <build> <resources> <resource> <directory>src/main/java</directory> <include>**/*.xml</include> </resource> <resource> <directory>src/main/resources</directory> <include>**/*.xml</include> <include>**/*.properties</include> </resource> </resources> </build>
|
6. 热部署–发布到树莓派tomcat
部署属性
1 2 3
| <username>tomcat</username> <password>tomcat</password> <url>http://192.168.0.103:8080/manager/text</url>
|
整个tomcat
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <port>8080</port> <path>/web</path> <username>tomcat</username> <password>tomcat</password> <url>http://192.168.0.103:8080/manager/text</url> </configuration> </plugin>
|
部署
首次:tomcat7:deploy
以后:tomcat7:redeploy

查看部署

访问网址http://192.168.0.103:8080/web/demo
