整个开发项目的管理模型
软件名 | 作用 | 详情 |
---|---|---|
maven | 构建工程 | 创建、编译、单元测试、打包、部署工程,并生成报告 |
myeclipse | 编辑工程 | 编辑maven构建的工程,再交给maven编译打包部署 |
tomcat | 发布工程 | 发布运行myeclipse开发、maven编译打包后的web应用 |
linux | 运行环境 | 操作系统,安装运行tomcat等软件 |
一、安装maven
1.下载解压
apache-maven-3.5.0
2. 配置环境变量
MAVEN_HOME=安装路径
path=%MAVEN_HONE%\bin
二、Maven构建工程
1. 创建工程
- 自己确定一个生成代码的文件夹(建议myeclipse的workspace)
- 运行CMD命令,进入文件夹
- 确定工程的名字和模板
- 公司或组织的名字groupID:需要修改
- 产品的名字artifactId:需要修改
- 确定生成maven工程的模板,web工程模板:maven-archetype-webapp
- 生成maven创建工程的命令
创建web工程(含maven)(推荐)
mvn archetype:generate -DgroupId=com.guoyasoft -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
- archetype:generate :按照模板生成maven工程
- -DgroupId:公司或组织名称(域名反写)
- -DartifactId:工程或产品名称
- -DarchetypeArtifactId:生成maven工程的模板
- maven-archetype-quickstart:生成纯maven的模板
- maven-archetype-webapp:生成web工程的模板(包含maven)
maven工程和普通工程的区别
普通java工程 | maven工程 |
---|---|
所有文件都在src下 | 源文件分成多类进行管理 |
编译代码放在bin文件夹下 | 构建过程的所有文件都放target下 |
jar包要自建lib文件夹并build path | 自带pom.xml配置文件管理jar包 |
2. 清除构建数据
删除整个target文件夹
## 1. cmd到工程根目录(pom.xml文件所在目录)
## 2. 执行maven命令
mvn clean
clean是独立命令,可以和maven构建生命周期的命令组合使用,比如:
mvn clean compile
mvn clean test
mvn clean package
3. 编译
## 1. cmd到工程根目录(pom.xml文件所在目录)
## 2. 执行maven命令
mvn compile
或
mvn clean compile (推荐)
maven compile和javac的区别
javac | mvn compile |
---|---|
javac命令 | 底层也是javac命令,但还封装了其它功能 |
单个编译 | 编译整个工程 |
.java和.class在一起 | .class文件全部集中到target文件加,与.java隔离 |
手动查找下载jar包 | 自动根据pom.xml的配置查找下载jar包 |
手动给classpath添加jar包路径 | 自动添加jar包路径 |
4. 单元测试
会自动先执行mvn compile,再执行mvn test
## 1. cmd到工程根目录(pom.xml文件所在目录)
## 2. 执行maven命令
mvn test
5. package打包(jar、war、ear)
修改工程根目录的pom.xml文件
web工程名
└─src
└─main
├─resources
└─webapp
└─WEB-INF
└─pom.xml
打成jar包还是war包,在pom.xml中进行设置:
<project >
<modelVersion>4.0.0</modelVersion>
<groupId>com.guoyasoft</groupId>
<artifactId>my-app</artifactId>
<packaging>jar</packaging>
<version>2.0</version>
</project>
打jar包:
<packaging>jar</packaging>
打war包:
<packaging>war</packaging>
打包命令:
## 1. cmd到工程目录(即pom.xml所在目录)
## 2. 执行maven打包命令
mvn package
查看结果:
## 1. cmd 进入工程的target目录
tree /f
## 2. 查看target的内容
C:.
│ my-app3.war
│
├─classes
├─maven-archiver
│ pom.propertie
│
└─my-app3
│ index.jsp
│
├─META-INF
└─WEB-INF
│ web.xml
│
└─classes
6. install安装jar包到本地仓库
将jar包安装到本地仓库,默认按照pom.xml的groupId、artifactId和version的值进行发布。会将jar包和pom文件都传到仓库
## 1. cmd到工程根目录(pom.xml文件所在目录)
## 2. 执行maven命令
mvn install
查看pom.xml文件,确定groupId、artifactId、version
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.guoyasoft</groupId>
<artifactId>my-app3</artifactId>
<packaging>war</packaging>
<version>1.0</version>
<name>my-app3 Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>my-app3</finalName>
</build>
</project>
到maven的本地仓库查找刚刚安装的jar包
或者(定制细节):groupId组织机构域名、artifactId产品名、version版本
mvn install:install-file
-DgroupId=com.guoyasoft
-DartifactId=my-app
-Dversion=1.0.0
-Dpackaging=jar
-Dfile=C:\test\07_maven\my-app\target\my-app-1.0-SNAPSHOT.jar
7. deploy发布包jar包
jar包发布到远程仓库,war包发布到web服务器
1). 配置服务器登录信息
在%MAVEN_HOME%\conf\settings.xml中,可以配多个,传的时候选一下
<servers>
<server>
<id>thirdparty</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>central</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
2)执行命令
mvn deploy:deploy-file
-DgroupId=com.xy.oracle
-DartifactId=ojdbc14
-Dversion=10.2.0.4.0
-Dpackaging=jar
-Dfile=E:\ojdbc14.jar
-Durl=http://localhost:9090/nexus-2.2-01/content/repositories/thirdparty/
-DrepositoryId=thirdparty
Durl:上传服务器的地址
DrepositoryId:登录服务器的配置,配在%MAVEN_HOME%\conf\settings.xml的servers中
8. deploy发布包war包
jar包发布到远程仓库,war包发布到web服务器
1)tomcat配置脚本登录账户
配置文件:%TOMCAT_HOME%\conf\tomcat-users.xml
<tomcat-users>
<role rolename="manager-script" />
<user username="deployer" password="654321" roles="manager-script"/>
</tomcat-users>
2)配置服务器登录信息
在%MAVEN_HOME%\conf\settings.xml中,可以配多个,传的时候选一下
<servers>
<server>
<id>tomcat</id>
<username>deployer</username>
<password>654321</password>
</server>
</servers>
3)pom.xml配置tomcat插件
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<url>http://localhost:8081/manager/text</url>
<server>tomcat</server>
<update>true</update>
<path>/HtmlWeb1</path>
</configuration>
</plugin>
直接写用户名和密码(不推荐):
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<url>http://localhost:8081/manager/text</url>
<username>deployer</username>
<password>654321</password>
</configuration>
</plugin>
4)部署war包
mvn clean
mvn tomcat7:redeploy
8. sit生成构建报告
在target文件夹下生成一个小网站,里面可以查看项目的各类信息,主界面index.html
mvn sit
三、本地仓库
%TOMCAT_HOME%\conf\settings.xml
<localRepository>
C:\software\apache-maven-3.5.0\repository
</localRepository>
四、远程仓库
1. 官方仓库(默认)
https://repo1.maven.org/maven2/
2. 国内镜像库
http://maven.aliyun.com/nexus/content/groups/public
https://repository.jboss.org/maven2/
https://repository.sonatype.org/content/groups/public/
http://repo.springsource.org/libs-milestone-local
六、pom.xml配置依赖
1. 配置远程仓库
<!-- 配置远程仓库 -->
<repositories>
<repository>
<id>maven</id>
<url>https://repo1.maven.org/maven2/</url>
</repository>
<repository>
<id>aliyun</id>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</repository>
<repository>
<id>jboss</id>
<url>http://repository.jboss.com/maven2/</url>
</repository>
<repository>
<id>oschina</id>
<url>http://maven.oschina.net/content/groups/public/</url>
</repository>
<repository>
<id>codelds</id>
<url>https://code.lds.org/nexus/content/groups/main-repo</url>
</repository>
<repository>
<id>hearglobal</id>
<url>http://maven.hearglobal.com/content/groups/public/</url>
</repository>
</repositories>
2. dependency配置依赖包
<dependencies>
<!-----------selenium界面自动化------------->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<version>2.50.0</version>
<artifactId>selenium-java</artifactId>
</dependency>
<!-----------testNG测试框架------------->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.8</version>
</dependency>
<!-----------servlet接口(http)------------->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
<!-----------自动生成代码的框架------------->
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.20</version>
</dependency>
<!-----------生成和读取CSV文件------------->
<dependency>
<groupId>net.sourceforge.javacsv</groupId>
<artifactId>javacsv</artifactId>
<version>2.0</version>
</dependency>
<!-----------JDBC(oracle和mysql)驱动------------->
<dependency>
<groupId>ojdbc</groupId>
<artifactId>ojdbc</artifactId>
<version>14</version>
</dependency>
<!-----------mybatis持久层框架------------->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>${mybatis-spring.version}</version>
</dependency>
<!-----------spring框架------------->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
</dependencies>