maven中的仓库:
SNAPSHOT:给…拍快照拍快照,快照仓库,snapshot快照仓库用于保存开发过程中的不稳定版本。
RELEASE:发布; 新发行的东西,发布仓库,release正式仓库则是用来保存稳定的发行版本。
maven的生命周期中各个命令所执行的阶段:
package命令完成了项目编译、单元测试、打包功能,但没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库。
install命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库,但没有布署到远程maven私服仓库。
deploy命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库。
groupId :
是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构
artifactId:
是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称
version :
版本号。
packaging:
打包方式,可以打war包或者jar包,不写默认是jar包
jar包和war包的区别:
jar:是类的归档文件,jar文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用,jar包就是java的类进行编译生成的class文件打包的压缩包,包里面就是一些class文件。
war:war包是一个Web应用程序,一个web程序进行打包便于部署的压缩包,里面包含我们web程序需要的一些东西,其中包括web.xml的配置文件,前端的页面文件,以及依赖的jar。便于我们部署工程,直接放到tomcat的webapps目录下,直接启动tomcat即可
SNAPSHOT:
那么在mvn deploy时会自动发布到快照版本库中,而使用快照版本的模块,在不更改版本号的情况下,直接编译打包时,maven会自动从镜像服务器上下载最新的快照版本。
RELEASE:
那么在mvn deploy时会自动发布到正式版本库中,而使用正式版本的模块,在不更改版本号的情况下,编译打包时如果本地已经存在该版本的模块则不会主动去镜像服务器上下载。
<!-- 发布maven私服 -->
<distributionManagement>
<repository>
<id>releases</id>
<name>releases</name>
<url>http://ip地址:端口号/nexus/repository/maven-releases-仓库名称/</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>snapshot</name>
<url>http://ip地址:端口号/nexus/repository/maven-snapshots-仓库名称/</url>
</snapshotRepository>
</distributionManagement>
在setting.xml中设置用户名密码, 这里配置的server的id必须和pom文件中的distributionManagement对应仓库的id保持一致,maven在处理发布时会根据id查找用户名称和密码进行登录和文件的上传发布
<servers>
<server>
<id>releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>snapshot</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>