一.配置
1.有的项目的pom.xml中没有配置maven远程远程仓库,maven的server.xml中也没有配置。那么项目中的依赖是在哪里下载的呢?
肯定有一个默认的远程仓库,叫做中央仓库,他配置在maven的超级pom中,而所有的maven项目都继承该pom,这个超级pom集成在${M2_HOME}/lib/maven-model-builder-3.0.5.jar/org/apache/maven/model/pom-4.0.0.xml中,打开该文件,可以看到这个:
<repositories>
<repository>
<id>central</id>
<name>Central Repository</name>
<url>http://repo.maven.apache.org/maven2</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
其中<url>http://repo.maven.apache.org/maven2</url>就是默认的远程仓库。就是因为有了它我们才可以不进行仓库配置也能下载依赖。
当然,我们也可以使用其他的远程仓库,比如自己公司内部的仓库。配置如下:
<repositories>
<repository>
<id>repository.engineering.redhat.com</id>
<name>RedHat Engineering Operations</name>
<url>https://repository.engineering.redhat.com/nexus/content/repositories/hss-tools</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
<layout>default</layout>
</repository>
</repositories>
配置在server.xml中会作用于所有项目,在自己的pom.xml中则只作用于该项目
[size=medium]
2.导入插件
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<warName>pay</warName>
</configuration>
</plugin>
</plugins>
</build>
上面这个插件可以用于去掉打包时候的版本号,warName为包名
也可以用
<build>
<finalName>pay</finalName>
</build>
[size=medium]3.指定编码方式
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
4.自定义变量
<properties>
<spring.version>1.2.6</spring.version>
</properties>
用EL表达式方式引用,方便日后统一修改版本号,如
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
5.继承与聚合
继承:概念与java中的继承类似。目的是抽出公共的元素,在开发中尽量减少项目的配置简化开发。例如:要并行开发好几个项目,而这些项目中又有很多相同的配置,那么就可以建立一个父项目A,包含这些配置,而其他项目只需要继承父项目A,不用再进行这些重复的配置。
B要继承A需要在B的pom.xml中添加配置如下:
<parent><!--父项目的groupId、artifactId、version -->
<groupId>com.lngtop.piaohao</groupId>
<artifactId>piaohao</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- <relativePath>父pom.xml的相对路径</relativePath> -->
</parent>
子项目的pom文件会继承父pom文件的所有元素
聚合:目的是把聚合的各个module(项目)一起构建。例如:要打包多个项目A、B、C时,如果用聚合的话就不必分别打包,可以直接打包父项目(被聚合的项目)便会打包所有项目
把B聚合到A中需要在A的pom.xml中添加如下配置
<modules><!--pay为聚合的项目相对目录 -->
<module>pay</module>
</modules>
实际开发中一般会将继承与聚合混合使用,此时只要同时加上以上配置即可。
6.排除传递依赖
例如我们的项目A依赖B,而B依赖C,而A不依赖C。此时可在A中排除C,起到项目瘦身作用
<dependency>
<groupId>B的groupId</groupId>
<artifactId>B的artifactId</artifactId>
<version>${B.version}</version>
<exclusions>
<exclusion>
<groupId>C的groupId</groupId>
<artifactId>C的artifactId</artifactId>
</exclusion>
</exclusions>
</dependency>
二.命令
1.导入官网没有的jar包:
先安装mvn install:install-file -DgroupId=*** -DartifactId=*** -Dversion=*** -Dpackaging=jar -Dfile=***.jar
2.创建web项目:
mvn archetype:create -DgroupId=packageName -DartifactId=webappName -Dversion=0.1 -DarchetypeArtifactId=maven-archetype-webapp
3. 编译: mvn compile
4. 编译测试代码:mvn test-compile
5. 运行测试:mvn test
6. 打包:mvn package
7. 清除mvn生成的文件:mvn clean
8. 生成eclipse项目:mvn eclipse:eclipse
9. 编译测试的内容:mvn test-compile
10. 只打jar包: mvn jar:jar
11. 清除eclipse的一些系统设置:mvn eclipse:clean
12.下载依赖的源代码:mvn dependency:sources -DdownloadSources=true (下载源代码jar) -DdownloadJavadocs=true (下载javadoc包)
分享到:
相关推荐
NULL 博文链接:https://tywo45.iteye.com/blog/462053
主要介绍了IDEA Maven 配置备忘笔记,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
nexus+maven构建私服,自己备忘
NULL 博文链接:https://wangyu.iteye.com/blog/1325138
COMS10017 该存储库包含注释,以及有关各种主题的详细讨论,例如和 。 实用材料(0%) : 2月- 2月1日 2月至8月8日 2月至19日 2月至22日 3月17日- 3月1日阅读周 3月至8月8日 ...Maven - Maven备忘单
此文档主要描述一个maven项目的搭建过程,没有理论的东西,只有实战。写文档的目的只是作为一个项目搭建的备忘录(记性差,怕忘了),也为有需要的同行提供一个参考,以方便快速搭建自己的maven项目。
后端基于Maven构建,采用Jdbc完成数据持久化操作。代码分层编写,分为Controller控制器层,Service业务逻辑层,dao持久化层,以及相对应的工具类。 前端直接采用Layui框架编写,ajax请求后端接口,进而完成页面渲染...
学习crm的javaweb项目文章由B站动力节点相关课程视频整理而成,不作为基础入门教程,只作为备忘的学习笔记。
资源内容:项目全套源码+完整文档 源码说明: 全部项目源码都是经过测试校正后百分百成功运行。 SpringBoot 毕业设计,SpringBoot 课程设计,基于...部署环境:Tomcat(建议用 7.x 或者 8.x b版本),maven
资源内容:项目全套源码+完整文档 源码说明: 全部项目源码都是经过测试校正后百分百成功运行。 SpringBoot 毕业设计,SpringBoot 课程设计,基于...部署环境:Tomcat(建议用 7.x 或者 8.x b版本),maven
基于SpringBoot+Vue的客户信息管理系统设计与实现(源码+数据库+文档).zip 高分通过项目,已获导师指导。 本项目是一套基于Springboot的客户信息管理系统,主要针对计算机相关专业的正在做毕设的...Maven包:Maven3.3.9+
管理员的功能包括备忘录管理、宠物管理、宠物收藏管理、宠物评价管理、宠物订单管理、字典管理、公告管理、捐赠管理、流浪管理、流浪收藏管理、流浪评价管理、流浪订单管理、单页数据管理、团队活动管理、团队活动...
Maven项目中使用RabbitMQ示例 使用到读取自定义配置文件。 可以正常运行。 主要是自己总结记录备忘。 如果能帮到需要的人,欢迎下载。
一个用于记录自己学习与生活的博客网站(自己喜欢称为备忘录) ,开发此项目的初衷是为了加深对 JAVA Web 开发各个姿势的了解,以及学习一些新的技术点,毕竟实践是检验学习成果的方法 V1 版本(已基本完成):采用 ...
Maven项目中使用mybatis-plus操作mysql示例 使用到读取自定义配置文件。 可以正常运行。 主要是自己总结记录备忘。 如果能帮到需要的人,欢迎下载。
maven docker 详细安装过程 框架 Spring Mybatis SpringMVC SpringBoot Spring Security Shiro Swagger-API框架 开发语言 java javaweb socket编程 rpc框架 tomcat jdk源码分析 go rust 前端 基础概念 html css 开发...
请参考此备忘单以获取有关某些 Java Java 文件夹包含一个 maven 项目,该项目有两个主要方法,它们都修剪数据以删除文本评论数据和名称以减小文件大小。 一种方法保留原始文件格式,另一种方法将每条记录转换为 CSV...
开发环境及相关备忘 基于JDK8,IDEA 2019.1,MAVEN 集成Travis 也可以使用exe4j或install4j内置Windows重置程序或安装程序 mvn clean package mvn dependency:copy-dependencies -DoutputDirectory=target/libs -...
前提条件: MavenJava JDK 1.8配置su proyecto 卢塞戈·德·克洛纳尔·库图尔储藏所,制罐厂和工程公司, mvn clean install工厂中的建筑工人。 一个连续的,连续的,连续的,连续的播放mvn spring-boot:run y ...