标签:赋值 web 结果 核心 传递 pil 向量 远程 准备
一个项目就是一个工程
如果项目非常庞大,就不适合继续使用package来划分模块。最好是每一个模块对应一个工程,利于分工协作。
项目中需要的jar包必须手动“复制”、“粘贴”到WEB-INF/lib目录下
带来的问题是:同样的jar包文件重复出现在不同的项目工程中,一方面浪费存储空间,另外也让工程比较臃肿。
且用Maven,可以将jar包仅仅保存在“仓库”中,有需要使用的工程“引用”这个文件接口,并不需要真的吧jar包复制过来。
jar包需要别人替我们准备好,或到官网下载。
借助于Maven可以以一种规范的方式下载jar包。因为所有知名框架或第三方工具的jar包以及按照统一的规范存放在了Maven的中央仓库中。
一个jar包依赖的其他jar包需要自己手动加入到项目里
如果所有jar包的依赖关系都要知道,将会大大增加学习成本
Maven是一款服务于java平台的自动化构建工具。Make-》Ant-》Maven-》Gradle
构建
构建过程中的各个环节
自动化构建
Hello(根目录,项目名)
|---src(源码)
|---|---main(存放主程序)
|---|---|---java(存放java源文件)
|---|---|---resource(存放框架或其他工具的配置文件)
|---|---test(存放测试程序)
|---|---|---java(存放java源文件)
|---|---|---resource(存放框架或其他工具的配置文件)
|---pom.xml(Maven工程的核心配置文件)
1. groupid:公司或组织域名倒序+项目名
<groupId>域名倒序+项目名</groupId>
2. artifactid:模块名
<artifactId></artifactId>
3. version:版本
<version>1.0.0<version>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.0.0.RELAESE</version>
那么便可以在maven仓库根目录下得到对应文件路径
org/springframework/spring-core/4.0.0.RELAESE/spring-core-4.0.0.RELAESE.jar
Maven解析依赖时回到本地仓库中查找被依赖的jar包。
对于我们自己开发的Maven工程,使用mvn install命令安装后就可以进入仓库
依赖的范围
依赖的传递性
[1]好处:可以传递的依赖不必在每个模块工程中都重复声明,在“最下面”的工程中依赖一次即可
[2]注意:非compile范围的依赖不能传递。所以在各个工程模块中,如果有需要就得重复声明依赖
依赖的排除
[1]需要设置依赖排除的场合。将jar包中不需要的jar包排除掉
[2]依赖排除的方式
<exclusions>
<exclusion>
<groupId>commons-logging<groupId>
<artifactId>commons-logging</artifactId>
<exclusion>
</exclusions>
依赖的原则
[1]作用:解决模块工程之间的jar包冲突问题
路径最短原则:最靠近的优先。
路径相同时,先在dependency标签中声明的优先
统一管理依赖的版本号
情景举例
设置通过Maven创建工程的JDK版本
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
<parent>
<groupId>父工程名</groupId>
<artifactId>父工程项目名</artifactId>
<version>父工程版本号</version>
<!-- 可以添加父工程pom.xml相对于当前子工程pom.xml的相对路径-->
<relativePath>路径</relativePath>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.0</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependcyManagement>
<!--配置聚合-->
<modules>
<!--指定各个子工程的相对路径-->
<module>../Hello</module>
<module>../HelloFriend</module>
<module>../MakeFriend</module>
</modules>
<build>
<finalName>最终项目名</finalName>
//配置构建构成中需要使用的插件
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.0-beta-9</version>
<configuration>
//配置当前系统中容器的位置
<container>
<containerId>tomcat8x</containerId>
<home>tomcat所在路径</home>
</container>
<useReleaseProfile>false</useReleaseProfile>
<goals>deploy</goals>
<scmCommentPrefix>[bus-core-api-release-checkin]-< /scmCommentPrefix>
</configuration>
</plugin>
</plugins>
</build>
标签:赋值 web 结果 核心 传递 pil 向量 远程 准备
原文地址:https://www.cnblogs.com/ylcc-zyq/p/12547480.html