项目构建
- java源代码
- jdk提供的一系列基础jar包
- 第三方开发的jar包
构建要做的内容
准备jar包、编译java代码、将编译好的代码[打包]发布
- 先编译java源代码
- 要拿到所有源文件用到的jar包
- 要将这些jar包的路径添加到classpath
- 编译结束后,需要把所有的.class文件抽取出来
- 抽取出来的所有.class文件,按需要进行打包(jar、war)
- 把jar包发布到maven仓库,供其它项目使用
jar包管理发展过程
- 各个公司、组织或个人,开发好jar包过后,由别人去他那儿要。问题:找不到,更新消息不能及时知道,依赖套依赖
- 都发布到一个专门的jar包网站,以公司的域名、产品名称、版本号作为jar包的查询路径。这种网站很多,有公服,也有私服。
- jar包与jar包之间的关系非常复杂,这时候就出现了管理工具maven。只要我们告诉maven需要的jar包的公司域名、产品名称、版本号,并且告诉它去哪几个网站查找。他就能够把jar包下下来,而且还会把jar包依赖的jar包也全部下下来
- 因为上网受网络限制,jar包相对还是比较大的,为了避免重复下载,就得有本地缓存,只要下了一次,再用就从本地缓存库里面去查找
maven创建工程
mvn archetype:generate -DgroupId=com.guoyasoft -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
<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-app</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>my-app</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>
</project>
maven编译
mvn clean
mvn compile
或者
mvn clean compile
maven打jar包
mvn package
maven安装jar包
mvn install
或者(定制细节)
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