第一次写博客,可能写得不是很好,但是希望自己持之以恒,以后会更好。也希望通过写博客记录随笔,让自己本身有所收获。
下面是今天的maven总结:
maven个人理解中是Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。
网址: mvnrepository //maven仓库网站!
下面是maven一些基本知识点,是这个星期学习maven所做的随笔。
<scope>text</scope> <!-- test范围指的是测试范围有效,在编译和打包时都不会使用这个依赖-->
<scope>runtime</scope> <!--runtime在运行的时候依赖,在编译的时候不依赖 -->
<scope>compile</scope> <!-- compile范围指的是编译范围有效,在编译和打包时都会将依赖存储进去-->
<scope>provide</scope> <!-- 在编译和测试的过程有效,最后生成war包时不会加入,诸如:servlet-api,因为servlet-api,tomcat等web服务器已经存在了,如果再打包会冲突-->
<dependencies>
<dependency>
<groupId>~~~</groupId>
<artifactId>~~~</artifactId>
<version>~~~</version>
<exclusions>
<exclusion>
<!--可以排除依赖-->
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
新建一个maven项目,选择pom 包 .整个项目中只有pom..目的是为了 将不同的包 打包。 聚合操作!!
<!--导入了三个模块-->
<modules> //modules 模块
<module>../user-core</module>
<module>../user-log</module>
<module>../user-service</module>
</modules>
maven中的继承:
<parent>
<groupId>zttc.itat.user</groupId>
<artifactId>user-parent</artifactId> //user-parent是已经建好的maven项目
<version>0.0.1-SNAPSHOT</version>
<relativePath>../user-parent/pom.xml</relativePath>//相对路径 -- 个人:既然是继承,那就要说明是继承哪个pom.xml的数据。
</parent>
<dependencyManagement> //然后那些已经继承父类的子类,就可以不用写<version></version> 版本之类的了
加入依赖组件
</dependencyManagement>
可聚合和继承混合一起。 在继承父类中加入聚合!!
设置我们的工厂,下载一次,以后做项目直接在自己的工厂下载,而且本机速度快 //下面这种方式比较麻烦。可以采取group类型,也就是public Respositories 工厂,添加好几个工厂,然后再拷贝它的路径添加在url
// 激活生效profile中的设置以后,就可以不用这个设置工厂
<repositories>
<repository>
<id>nexus</id>
<name>Nexus Repository</name>
<url>~~~</url> //地址直接剪切nexus中工厂的地址。如http://localhost:8081/nexus/content/repositories/centeral
</repository>
//如果再加一个工厂的话,直接加<repository>
</repositories>
//在maven包中的setting.xml文件设置
<profile>
<id>nexusRepo</id>
<repositories>
<repository>
<id>nexus</id>
<name>Nexus Repository</name>
<url>~~~</url>
<release>
<enable>true</enable> //默认设置可以下载release包
</release>
<snapshots>
<enable>true</enable> //<!--snapshots默认是关闭的,需要手动开启-->
</snapshots>
</repository>
</profile>
</profiles>
</repositories>
<activeProfiles>
<activeProfile>nexusRepo</activeProfile> //激活我们的profile文件设置。 名字就是上面的id 只有激活才生效
</activeProfiles>
//设置镜像,要求*工厂只由我们的私服来访问,而不用其他方式来访问,可以所有的工厂镜像到一个地址来访问!
<!--工厂的镜像 只要MirrorOf中的工厂要访问,都会自动来找镜像,如果镜像无法访问就不会再去*工厂了-->
<mirror>
<id>nexusMirror</id>
<mirrorOf>*</mirrorOf> //*表示所有的工厂都用着镜像网络!这是推荐的做法
<name></name>
<url></url>
</mirror>
//如果设置了镜像了以后,就不用再去激活那个了。所以更改为
<activeProfiles>
<activeProfile></activeProfile>
</activeProfiles>
在nexus中发布项目:
<distributionManagement>
<repository>
<id>~~</id> //nexus中允许发布的user 的id 这个要确定。也同时需要添加配置<server><id>要发布的项目的user 的id</id><username>~~</username><password>~~</password></server>
<name>~~<name>
<url>~~</url>//想要发布到的工厂的url地址
</repository>
<!--若配置的是snapshot版本的话则要加上-->
//<snapshotRepository><id></id><name></name><url></url></snapshotRepository>
</distributionManagement>