清除target目录的文件
▅ 编译命令 mvn compile
编译后 .class文件在 out下 (这个命令只会对java源程序编译, 不会编译测试代码 , 编译测试类 mvn test-compile , 编译后.class 文件在 out)
▅ 测试命令 mvn test
执行所有测试用例方法, 重新编译
▅ 清除命令 mvn clean
清除target目录 (清除所有编译结果或者打包结果 ),清理后编译。
▅ 打包命名 mvn package
java项目生成 jar包, web项目生成war包
maven对每个工程通过坐标管理。
groupId:定义当前Maven项目名称
artifactId:定义项目模块
version:定义当前项目的当前版本
如何查询坐标
使用网站搜索
http://search.maven.org/
http://mvnrepository.com/
网站搜索示例:
当一个项目依赖的构件比较多时,它们相互之前存在依赖,当你需要对依赖版本统一管理时如果让maven自动来处理可能并不能如你所愿,如下例子:
org.apache.struts
struts2-spring-plugin
2.3.24
org.springframework
spring-context
4.2.4.RELEASE
org.apache.struts依赖spirng-beans-3.0.5,spring-context依赖spring-beans-4.2.4,但是发现spirng-beans-3.0.5加入到工程中,而我们希望spring-beans-4.2.4加入工程。
maven自动按照下边的原则调解:
▅ 1、第一声明者优先原则
在pom文件中谁先声明以谁为准。
测试:
如果将上边struts-spring-plugins和spring-context顺序颠倒,系统将导入spring-beans-4.2.4。
▅ 2、路径近者优先原则
例如:A-> spirng-beans-4.2.4,A->B-> spirng-beans-3.0.5,则spirng-beans-4.2.4优先
测试:
在本工程中的pom中加入spirng-beans-4.2.4的依赖,根据路径近者优先原则,系统将导入spirng-beans-4.2.4:
方法一:可以通过排除依赖方法辅助依赖调解:
比如struts2-spring-plugin中添加排除spring-beans:
<!-- struts2-spring-plugin依赖spirng-beans-3.0.5 -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId> struts-spring-plugin</artifactId>
<version>3.3.24</version>
<!-- 排除 spring-beans-->
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</exclusion>
</exclusions>
</dependency>
方法二:锁定版本(推荐使用)
面对众多的依赖,有一种方法不用考虑依赖路径、声明优化等因素可以采用直接锁定版本的方法确定依赖构件的版本,此方法在企业开发中常用:
org.springframework
spring-beans
4.2.4.RELEASE
一个工程非常大的时候,多人协助开发。
为了提高开发效率,将整个工程拆分成多个模块工程,每个团队开发,开发完成将工程打成jar包发布仓库中,其它团队成员连接仓库下载其它模块的jar(class),只需要编译本模块的clas即可。
本文使用intelliJidea 14
在idea中创建一个分层(视图层、业务逻辑层、数据访问层)的项目步骤如下:
1.创建一个project,idea在创建project的时候会默认创建一个module,此时,给这个project和module命名(比如hello_client,表示这是项目的客户端也就是视图层),并且指定项目存放路径。
2.新建一个module,新建的时候路径指定为和上面的hello_client同级。命名为hello_service,表明这是项目的业务逻辑层。
3.新建一个module,命名为hello_dal,表示这是项目的数据访问层,同上,此module的目录指定为和hello_client、hello_service同级。
4.此时在project窗口中会看到并列的三个module。开发的时候就可以在不同的层次上放置不同的代码。如下图:
5.在项目中hello_client会引用hello_service的代码,而hello_service会引用hello_dal的代码。在idea中添加引用的方式为:
选中任意一个module,按F4进入project structure;选择左侧的modules菜单;选择中间的hello_client,选中右侧的dependencies选项卡,点击右侧的绿色+按钮,选择modeule dependecy,在弹出的选择框中选择hello_service。这样就为hello_client添加了hello_service的引用。直接在hello_client中引用hello_service的代码即可。同理,添加hello_service对hello_dal的引用。
第一步:创建父工程 打包方式为POM
备注:父工程不写业务:统一依赖版本
第二步:创建springmvc子工程(打包成war包)
第三步:创建spring子工程(打成war包)同上
第四步:注意事项
创建完毕后 父工程中pom.xml文件中
Jar工程默认是没有
<packaging>jar</packaging>
在公司的局域网内部署一台服务器,服务器上安装maven私服软件。
服务器上存储了maven仓库。
在私服环境下本地项目找jar流程是:
1、先找本地仓库
2、如果本地仓库没有从私服找
3、如果私服没有从中央仓库下载,下载成功将jar向私服和本地仓库都存一份。
下载Nexus, 下载地址:http://www.sonatype.org/nexus/archived/
下载:nexus-2.12.0-01-bundle.zip
解压nexus-2.12.0-01-bundle.zip,本教程将它解压在F盘,进入bin目录:
cmd进入bin目录,执行nexus.bat install
cmd进入nexus的bin目录,执行:nexus.bat uninstall
方法1:
cmd进入bin目录,执行nexus.bat start
方法2:
直接启动nexus服务
查看nexus的配置文件conf/nexus.properties
默认用户名和密码 :
admin/admin123
1、hosted:宿主仓库,自己项目的jar要放到hosted类型的仓库中。
2、proxy:代理仓库,代理中央仓库
3、virtual:虚拟仓库,存储了maven1的构件,一般不用。
4、group:仓库组,将一些仓库组成一个组,自己项目连接仓库组去下载jar包。
平常开发中都去连接仓库组,仓库组中包括:hosted、proxy等。
在nexus搜索jar包
在nexus加入jar包索引。
方法1:
连网下载