一.配置
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包)
分享到:
相关推荐
标题 "Tomcat, JDK, Maven 环境变量配置(备忘)" 提示我们这篇内容主要涉及的是Java开发中的三个重要组件的环境配置:Tomcat(一个流行的Java应用服务器),JDK(Java Development Kit,Java开发工具包)和Maven(一...
COMS10017 该存储库包含注释,以及有关各种主题的详细讨论,例如和 。 实用材料(0%) : 2月- 2月1日 2月至8月8日 2月至19日 2月至22日 3月17日- 3月1日阅读周 3月至8月8日 ...Maven - Maven备忘单
后端基于Maven构建,采用Jdbc完成数据持久化操作。代码分层编写,分为Controller控制器层,Service业务逻辑层,dao持久化层,以及相对应的工具类。 前端直接采用Layui框架编写,ajax请求后端接口,进而完成页面渲染...
此文档主要描述一个maven项目的搭建过程,没有理论的东西,只有实战。写文档的目的只是作为一个项目搭建的备忘录(记性差,怕忘了),也为有需要的同行提供一个参考,以方便快速搭建自己的maven项目。
- **Maven或Gradle**:这些构建工具可以帮助自动化构建过程,管理依赖,以及生成可执行的JAR文件。 10. **设计模式**: - **MVC(Model-View-Controller)**:备忘录和日程管理应用可能采用MVC设计模式,分离业务...
9. **Maven或Gradle构建工具**:这些工具用于管理和构建项目,依赖管理和构建自动化使得开发流程更加高效。 10. **文档**:附带的说明文档可能涵盖了系统的设计、实现细节、安装步骤和使用指南,这对于初学者理解...
2. **Maven或Gradle构建系统**:项目很可能使用Gradle作为构建工具,它是Android Studio默认的构建系统,用于编译、打包和管理依赖。 3. **Java编程语言**:由于标签中提到了“java源码”,所以项目主要使用Java...
在开发过程中,开发者可能使用了如Maven或Gradle这样的构建工具来管理依赖和构建流程,这些工具可以帮助自动化编译、测试和打包过程。对于调试和测试,可能还使用了Eclipse、IntelliJ IDEA等IDE,它们提供了丰富的...
如果"BeiWangLu"是一个Java项目,那么它可能包含了源代码文件(如.java)、资源文件(如图片、音频或配置文件)、编译后的类文件(如.class)以及可能的构建脚本(如Maven的pom.xml或Gradle的build.gradle)。...
学习crm的javaweb项目文章由B站动力节点相关课程视频整理而成,不作为基础入门教程,只作为备忘的学习笔记。
版本控制、调试技巧、代码格式化和自动化构建工具(如Gradle、Maven)的使用,都能显著提高开发效率。 测试方面,JUnit、pytest等单元测试框架的用法,以及Selenium、Appium等自动化测试工具的配置和脚本编写,都是...
后端:spring+springboot+mybatis+maven+mysql 前端: vue , css,js , elementui 三、系统功能 1、系统角色主要包括:管理员、用户 2、系统功能 后台主要功能包括: 用户登录 用户注册 首页 个人中心 修改密码 ...
而“工具”则可能包括版本控制工具(如Git)、构建工具(如Maven)、集成开发环境(IDE,如Eclipse或Visual Studio Code)或者测试工具等,这些工具在软件开发过程中起着至关重要的作用。 【压缩包子文件的文件名称...
4. **开发工具**:在软件开发过程中,开发者会使用各种工具,如IDE(如IntelliJ IDEA、Eclipse)、版本控制系统(如Git)、构建工具(如Maven、Gradle)、持续集成/持续部署(CI/CD)工具(如Jenkins)等。这些工具...
《CI持续集成服务器Hudson使用备忘》 在软件开发过程中,持续集成(Continuous Integration,简称CI)是一种实践,它强调开发人员频繁地将他们的代码更改合并到共享存储库中,并且每次合并后都会立即进行自动化构建...
资源内容:项目全套源码+完整文档 源码说明: 全部项目源码都是经过测试校正后百分百成功运行。 SpringBoot 毕业设计,SpringBoot 课程设计,基于...部署环境:Tomcat(建议用 7.x 或者 8.x b版本),maven
在Linux环境下,Java开发人员可以利用丰富的开发工具和库,如Eclipse、IntelliJ IDEA、Maven等,来提高开发效率和质量。 最后,手册还涉及了一些编程基础知识,比如C/C++的深入学习、数据结构和算法的学习资源、...