Maven
- settings.xml与仓库
- settings.xml配置本地仓库
<localRepository>/path/to/local/repo</localRepository>
- pom.xml为maven的核心文件, 用于保存maven的元信息, 指明maven如何运行, pom.xml放在项目的根目录下
在pom.xml中
- groupid标签为包名
- artifact标签为模块(一个maven工程, 有pom.xml)
- version版本
<dependency>
<groupId>org.bux.maven</groupId>
<artifactId>demo</artifactId>
<version>1.0.2 SNAPSHOT</version>
</dependency>
他们构成了坐标
对应的目录是: org/bux/maven/demo/1.0.2/*.jar
使用maven创建项目
- 创建一个工作空间
- mvn命令创建
去互联网上拷贝即可
- mvn构建项目第一次执行时会下载一些组件, 结束之后就会一个maven工程目录src/main, src/test
对项目进行管理(在pom.xml所在位置)
- 编译
mvn compile
--> 生成target文件夹, 有一个classes在里面
- 测试
mvn test
步骤: 先编译后执行 --> 在target中生成test-class文件夹
- 清理
mvn clean
将编译文件清楚, 之后只剩下src文件夹
- 打包
mvn package
- 发布安装
mvn install
自动打包成jar并发布
- 发布到服务器(tomcat, jboss)
mvn deploy
--> 一般线上使用
将maven转为eclipse的project
将maven转为idea的project
启动tomcat
关于仓库
- effective pom.xml = super pom.xml + user-define pom.xml, 模块中的pom集成parent的pom, 就是模块与父目录, 但是一般有子模块会在dependencies上有一个dependencyManagement标签
java开发流程
maven实现多模块
<modules>
<module>name</module>
<module>name</module>
</modules>
父目录管理子模块常用的配置(主要采用dependencyManagement标签统一管理版本)
使用dependencyManagement可以统一管理项目的版本号,确保应用的各个项目的依赖和版本一致,不用每个模块项目都弄一个版本号,不利于管理,当需要变更版本号的时候只需要在父类容器里更新,不需要任何一个子项目的修改;如果某个子项目需要另外一个特殊的版本号时,只需要在自己的模块dependencies中声明一个版本号即可。子类就会使用子类声明的版本号,不继承于父类版本号。
<property>
<spring-core.version>1.1.1</spring-core.version>
<property>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring-core.version}</version>
</dependency>
</dependencies>
</dependencyManagemet>
在子模块中指明
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</dependency>
在父目录中导入子模块的包
<dependencies>
<groupId>submodule-groupId</groupId> <artifactId>submodule-artifactId</artifactId>
<version>1.1.1</version>
</dependencies>
防止版本冲突
<property>
<log4j.version>1.1.1</log4j.version>
</property>
引用${log4j.version}
搭建私服
方法一
方法二