1 Star 0 Fork 31

阿明 / Ebooks

forked from Java精选 / Ebooks 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
项目管理工具最新面试题及答案附答案汇总.md 10.20 KB
一键复制 编辑 原始数据 按行查看 历史

项目管理工具最新面试题及答案附答案汇总

全部面试题答案,更新日期:01月30日,直接下载吧!

下载链接:高清500+份面试题资料及电子书,累计 10000+ 页大厂面试题 PDF

项目管理工具

题1:Maven 规约是什么?

src/main/java 存放项目的类文件(后缀.java文件,开发源代码)

src/main/resources 存放项目配置文件,若没有配置文件该目录可无,如Spring、Hibernate、MyBatis等框架配置文件

src/main/webapp 存放web项目资源文件(web项目需要)   src/test/java 存放所有测试类文件(后缀.java文件,测试源代码)

src/test/resources 测试配置文件,若没有配置文件该目录可无

target 文件编译过程中生成的后缀.class文件、jar、war等

pom.xml maven项目核心配置文件,管理项目构建和依赖的Jar包

Maven负责项目的自动化构建,以编译为例,Maven若果自动进行编译,需要知道Java的源文件保存位置,通过这些规约,不用开发者手动指定位置,Maven就可以清晰的知道相关文件所在位置,从而完成自动编译。

遵循**“约定>>>配置>>>编码”**。即能进行配置的不要去编码指定,能事先约定规则的不要去进行配置。这样既减轻了工作量,也能防止编译出错。

题2:什么是 Maven 插件?

Maven生命周期的每一个阶段的具体实现都是由Maven插件实现的。插件通常提供了一个目标的集合,并且可以使用下面的语法执行:

mvn [plugin-name]:[goal-name]

Maven提供了两种类型的插件:

1)Build plugins:在构建时执行,并在pom.xml的元素中配置。

2)Reporting plugins:在网站生成过程中执行,并在pom.xml的元素中配置。

一些常用插件列表:

clean:构建之后清理目标文件。删除目标目录。

compiler:编译Java源文件。

surefile:运行JUnit单元测试。创建测试报告。

jar:从当前工程中构建JAR文件。

war:从当前工程中构建WAR文件。

javadoc:为工程生成Javadoc。

antrun:从构建过程的任意一个阶段中运行一个ant任务的集合。

题3:Git 中提交项目文件命令是什么?

提交项目文件命令

git commit -a

含义:-a参数是指通过在命令行上加-a指示git提交已修改的所有被跟踪文件的新内容。

注意的是如果第一次提交新文件,可以在执行git commit -a命令之前先执行git add 命令。

题4:Maven 下载依赖包如何更换数据源?

编译Maven项目需要自动从中央仓库(远程仓库、本地仓库)下载项目所需的依赖jar包,但是正常情况下,中央仓库服务在国外,下载速度缓慢,可以将其改为远程仓库下载所需依赖包,即阿里巴巴的镜像。

打开Maven解压目录下conf文件夹,修改settings.xml文件,更换成阿里镜像,提高下载依赖包速度。

<mirror>
	<id>nexus-aliyun</id>
	<mirrorOf>central</mirrorOf>
	<name>Nexus aliyun</name>
	<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

题5:Maven 中如何解决 jar 包冲突?

第一步,查找Maven加载的时候是什么版本的jar包,通过使用“mvn dependency:tree”命令查看依赖树,或者使用IDEA Maven Helper插件。

第二步,通过Maven的依赖原则来调整坐标在pom文件的申明顺序或者使用将冲突中不想要的jar引入的jar进行<exclusions>去除掉。

项目中引入另一个maven项目依赖,通过依赖传递,会将jar包传递进来,如果不需要某个jar包就可以使用如下配置:

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-core</artifactId>
  <version>${spring.version}</version>
  <exclusions>
    <exclusion>
      <artifactId>commons-logging</artifactId>
      <groupId>commons-logging</groupId>
    </exclusion>
  </exclusions>
</dependency>

题6:Maven 的内置构建生命周期是什么?

当开发人员构建Maven项目时,它将基于项目pom.xml配置和命令行选项执行一组明确定义的任务。 此标准任务集创建了Maven构建生命周期。

Maven有三个内置的构建生命周期。

默认(default):处理项目的构建和部署。

清洁(clean):处理项目清理。

站点(site):处理项目站点文档的创建。

默认(default),清洁(clean)和站点(site)。在默认(default)的生命周期处理项目部署,将清洁(clean)的生命周期处理项目的清理,而站点(site)的生命周期处理项目站点文档的创建。

题7:Maven 中如何避免子工程引用不同版本导致编译出错?

dependencyManagement用来统一管理依赖版本的,其目的是防止不同子项目引用不同的版本而导致编写代码的时候出现意外错误。之前的面试题已经说明了该参数的作用,此处就不在阐述。

配置方式

1、假设父工程pom文件,如下:

<groupId>com.jingxuan</groupId>
<artifactId>J</artifactId> //项目名称J
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
//对项目A的版本进行了统一管理,子类使用A时可以不写<version>标签。
<dependencyManagement>
	<dependencies>
		<dependency>
			  <groupId>com.jingxuan</groupId>
			  <artifactId>A</artifactId>
			  <version>0.0.1-SNAPSHOT</version>
		</dependency>
	</dependencies>
</dependencyManagement>

2、假设子工程需要使用A包

方式一:parent标签,子类POM文件编写如下:

//引用父工程J
<parent>
	<groupId>com</groupId>
	<artifactId>P</artifactId>
	<version>0.0.1-SNAPSHOT</version>
</parent>
//子工程使用A包
<dependencies>
	<dependency>
		  <groupId>com.jingxuan</groupId>
		  <artifactId>A</artifactId>
	</dependency>
</dependencies>

方式二:import标签,子类POM文件编写如下:

//子工程使用A包,注意使用import标签时,不再使用<parent>标签
<dependencies>
	<dependency>
		  <groupId>com.wentian</groupId>
		  <artifactId>A</artifactId>
		  //这里并没有使用<version>标签
	</dependency>
</dependencies>
//表示将项目J的dependencyManagement拿到本POM中,不再继承parent
<dependencyManagement>
		<dependencies>
			<dependency>
				    <groupId>com</groupId>
					<artifactId>P</artifactId>
					<version>0.0.1-SNAPSHOT</version>
					<type>pom</type> //必须是type=pom
					<scope>import</scope> //必须是scope=import
			</dependency>
		</dependencies>
</dependencyManagement>

题8:什么是 Maven 存储库?

存储库是指存储所有jar和pom.xml文件的目录或位置。

Maven中有3种类型的存储库分别是:

1)本地存储库

当运行任何maven命令时Maven本地存储库都是由maven在本地系统中创建的。

2)中央储存库

Maven社区在Web上创建Maven中央存储库。

3)远程仓库

Maven远程存储库由其他第三方位于Web上。因此,需要在pom.xml文件中手动定义依赖项。

题9:Git 中什么是“裸存储库”?

Git中的 “裸” 存储库只包含版本控制信息而没有工作文件(没有工作树),并且它不包含特殊的.git子目录。相反,它直接在主目录本身包含.git子目录中的所有内容,其中工作目录包括:

1)一个.git子目录,其中包含你的仓库所有相关的Git修订历史记录。

2)工作树,或签出的项目文件的副本。

题10:Git 和 SVN 有什么区别?

Git是一个分布式的版本控制工具;而SVN是集中版本控制工具;

Git属于第3代版本控制工具;而SVN属于第2代版本控制工具;

Git客户端可以在其本地系统上克隆整个存储库;而SVN版本历史记录存储在服务器端存储库中;

Git支持离线提交;而SVN必须在线提交;

Git中Push/pull命令操作更快;而SVN中Push/pull命令操作较慢;

Git工程可以用commit命令实现自动共享;而SVN不支持自动共享。

题11:maven-中有哪些依赖原则

题12:maven-常用命令有哪些

题13:maven-中-dependencies-和-dependencymanagement-有什么区别

题14:maven-中依赖的解析机制是什么

题15:maven-如何管理多模块项目依赖

题16:maven-中-什么是-mojo

题17:maven-中-lastestreleasesnapshot-有哪些区别

题18:-什么是-git

题19:git-提交失误时如何撤销

题20:maven-构建阶段是什么

题21:什么是-maven

题22:maven-中--是什么

题23:maven-和-ant-有什么区别

题24:为什么选用-maven-进行构建

题25:git-提交时冲突是什么原因所致如何解决

大厂面试题

大厂面试题

大厂面试题

Java
1
https://gitee.com/AminDev/ebooks.git
git@gitee.com:AminDev/ebooks.git
AminDev
ebooks
Ebooks
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891