Maven配置文件(setting.xml)属性解析

前置信息
Maven 版本:apache-maven-3.5.2
Nexus 信息:nexus2、nexus3
镜像仓库:如果仓库 X 可以提供仓库 Y 存储的所有的内容,那么仓库 X 就可以说是 仓库 Y 的镜像(也就是说能从仓库 Y 获取的内容,从仓库 X 也能获取)
属性解析
setting
<setting>setting 文件的根元素</setting>
localRepository
<localRepository>本地仓库</localRepository>

<!-- 该属性一般需要自己设置
	 不设置的话,本地仓库默认地址为-->
<localRepository>${user.home}/.m2/repository</localRepository>
interactiveMode
<interactiveMode>Maven 是否与用户交互</interactiveMode>

<!-- 该属性一般按照默认配置(设置为 true )
     设置为 false 时,Maven 会基于一些其他设置参数,配置一个默认值-->
<interactiveMode>true</interactiveMode>
offline
<offline>离线模式</offline>

<!-- 该属性一般按照默认设置(设置为 false)
     该属性值 Maven 构建时是否连接网络,会产生 jar 包下载、部署及其他错误影响-->
<offline>false</offline>
pluginGroups
<pluginGroups>插件组</pluginGroups>
proxies
<!-- 
 	| 代理主机信息
	| 当公司网络与公网隔离,需要代理主机才能访问公网时,需要设置该属性 
-->

<proxies>
	<proxy>
      <!-- (自定义id名称即可) -->
      <id>optional</id>
	  <!-- (是否激活该代理) -->
      <active>true</active>
	  <!-- (使用的代理协议) -->
      <protocol>http</protocol>
      <!-- (用户名) -->  
      <username>proxyuser</username>
      <!-- (密码) -->
      <password>proxypass</password>
      <!-- (代理服务器地址) -->
      <host>proxy.host.net</host>
      <!-- (代理服务器端口) -->
      <port>80</port>
      <!-- (指定那些主机地址不需要代理)
      	| 支持 “ | ” 分隔多个主机地址 
		| 支持 “ * ” 适配符 例如 *.baidu.com 表示所有以 baidu.com 结尾的主机地址,都不会走代理
	  -->
      <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
    </proxy>
</proxies>

<!-- 
 	| 支持配置多个 proxy ,默认是第一个 proxy 配置生效
-->
servers
<!-- 
	| 仓库/镜像仓库的认证信息
-->

<servers>
	 <server>   
      <!-- (自定义id名称) 
		  | id 属性,需要与下面讲述的 mirror 、profile 属性中的 id 保持一致
	  -->
      <id>deploymentRepo</id>
      <!-- (用户名) -->
      <username>repouser</username>
      <!-- (密码) -->
      <password>repopwd</password>
    </server>
</servers>
mirrors
<!--
	| 镜像仓库
-->

<mirrors>
	<mirror>
      <!-- (自定义id名称) -->
      <id>mirrorId</id>
      <!-- (镜像仓库匹配范围) 
		| “ * ”表示匹配所有远程仓库,任何对远程仓库的请求,都会转到该镜像地址下
		| “ external:* ”表示匹配所有远程仓库(localhost、file://协议、这两种除外)即匹配不在本机上的所有远程仓库
		| “ repo1,repo2 ”表示匹配 repo1、repo2 两个远程仓库,可以使用逗号分隔多个远程仓库
		| “ *,!repo1”表示匹配所有远程仓库,但是 repo1 远程仓库除外		  
	  -->
      <mirrorOf>repositoryId</mirrorOf>
      <!-- (镜像名称) -->
      <name>Human Readable Name for this Mirror.</name>
      <!-- (镜像地址) -->
      <url>http://my.repository.com/repo/path</url>
    </mirror>
</mirrors>

<!--	
	| 镜像仓库的常用方式:结合私服使用
		| 说明:因为私服,可以代理任何外部公共仓库,那么,可以使用一个私服地址,代理所有需要的外部公共仓库,简化 Maven 的配置。
			   这种情况下,私服可以说所有需要的外部公共仓库的镜像;	
	| 如果镜像需要认证信息,同样是在 servers 中增加 server 信息
	| 镜像仓库完全屏蔽了被镜像仓库,当镜像仓库不稳定或停止服务的时候,Maven 将无法方位被镜像仓库,因为无法下载内容
-->
profiles
<!-- 
	| 配置文件列表
	| 不同环境的构建大概率是不同的,比如数据库配置、使用特殊版本的依赖、配置插件使用本地文件,为了让构建能在不同环境移植,Maven 引入 Profile 
-->

<profiles>
	<profile>
        <!-- (自定义id名称) -->
        <id>nexus</id> 
        <repositories> 
          <repository> 
            <id>nexus</id>
            <!-- (自定义资源名称) -->
            <name>Nexus</name>
            <!-- 仓库地址 -->
            <url>http://100.4.252.5:18080/nexus/content/groups/public</url>
            <releases>
                <!-- 是否允许该仓库为构件提供 发布版 / 快照版 下载功能 -->
                <enabled>true</enabled>
                <!-- 每次执行构建命令时, Maven 会比较本地 POM 和远程 POM 的时间戳, 该元素指定比较的频率 
					| always(每次构建都检查)
					| daily(默认, 距上次构建检查时间超过一天)
					| interval: x(距上次构建检查超过 x 分钟)
					| never(从不)
				-->
                <updatePolicy>daily</updatePolicy>
				<!-- 当 Maven 验证构件的校验文件失败时该怎么做: ignore(忽略), fail(失败), 或者warn(警告)-->
                <checksumPolicy>warn</checksumPolicy>  
            </releases> 
			<snapshots>
                <!-- 参照 releases -->
				<enabled>true</enabled>  
				<updatePolicy>daily</updatePolicy>
				<checksumPolicy>warn</checksumPolicy>  
			</snapshots>
          </repository>
        </repositories> 
        <pluginRepositories> 
          <pluginRepository> 
            <id>nexus</id> 
            <name>Nexus</name>
            <!-- 仓库地址 -->
            <url>http://100.4.252.5:18080/nexus/content/groups/public</url>
            <!-- (发布版本的插件) -->
            <releases><enabled>true</enabled></releases> 
            <!--(快照版本的插件) -->
            <snapshots><enabled>true</enabled></snapshots> 
          </pluginRepository> 
        </pluginRepositories> 
    </profile>
</profiles>

<!-- 
 	| profile 激活
		| 通过命令行激活:用户使用 mvn 命令行参数 -P 加上 profile 的id 来激活 profile,多个通过逗号分隔
		| setting.xml 配置文件显式激活:使用 activeProfiles 属性,表示 setting.xml 中的 profile 在所有项目中激活(下面会讲)
		| 系统属性激活
-->
profile 种类

pom.xml: pom 文件的 profile 只对当前项目生效

用户setting.xml: 用户目录下/.m2/setting.xml 文件中的 profile 只对本机该用户所有的 Maven 项目生效

全局setting.xml: Maven 安装目录下的 setting.xml 文件中的 profile 对本机所有的 Maven 项目生效

profiles.xml (Maven 2) 还可以在项目根目录下使用一个额外的 profiles.xml 声明,该特性在 Maven 3 中移除,建议将 profiles 添加到 setting.xml 中

profile激活

通过命令行激活:用户使用 mvn 命令行参数 -P 加上 profile 的id 来激活 profile,多个通过逗号分隔

mvn clean -Pdev-x,dev-y

setting.xml 配置文件显式激活:使用 activeProfiles 属性,表示 setting.xml 中的 profile 在所有项目中激活

<activeProfiles> 
     <activeProfile>nexus</activeProfile>  
 </activeProfiles>

系统属性激活:用户可以配置系统属性 test 存在时,自动激活 profile ,如下面第一个示例;用户可以配置系统属性存在,且系统属性值时,自动激活profile,如下面第二个示例

<!-- 第一个示例 -->
<profiles>
	<profile>
    	<activeprofile>
        	<property>
            	<name>test</name>
            </property>
        </activeprofile>
    </profile>
</profiles>

<!-- 第二个示例 -->
<profiles>
	<profile>
    	<activeprofile>
        	<property>
            	<name>test</name>
                <value>x</value>
            </property>
        </activeprofile>
    </profile>
</profiles>

<!-- 一定要记得,也是可以通过命令行声明系统属性激活 -->
mvn clean -Ptest=x

操作系统环境激活:profile 可以根据不同操作系统环境自动激活,如果构建在不同操作系统环境且有差异,可以把这些差异写进 profile

<profiles>
	<profile>
    	<activeprofile>
        	<os>
            	<name>Window XP</name>
                <family>Window</value>
                <arch>X86</arch>
            </os>
        </activeprofile>
    </profile>
</profiles>

文件是否存在激活:Maven 能够根据项目中某个文件是否存在来决定是否激活 profile

<profiles>
	<profile>
    	<activeprofile>
        	<file>
            	<missing>y.properties</name>
                <exists>x.properties</value>
            </file>
        </activeprofile>
    </profile>
</profiles>
activeprofile
<!-- 使用 activeProfiles 属性,表示 setting.xml 中的 profile 在所有项目中激活 -->

<activeProfiles>
	<activeProfile>central(id 需要与 profile 中的 id 保持一致)</activeProfile>
</activeProfiles>
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.1 JDK配置: JDK是Java Development Kit的缩写,是Java开发的基础环境。JDK的配置包括安装和环境变量配置两个步骤。安装JDK可以从官网下载,配置环境变量需要将JDK的bin目录添加到系统的PATH环境变量中,以便在命令行中可以直接使用Java相关命令。 1.2 Tomcat 根目录: Tomcat是一个Web应用服务器,其根目录包含bin、conf、logs、webapps等目录。其中bin目录下有启动和停止Tomcat的工具,可以使用startup.sh或shutdown.sh启动和停止Tomcat。在Linux下,可以使用命令行启动和停止Tomcat。可以使用ps命令查看Tomcat进程是否在运行,也可以通过访问Tomcat的管理页面来查看是否活着。 配置server.xml中的端口号和IP可以通过修改server.xml文件来实现,其中Connector标签中的port属性控制Tomcat的端口号,address属性控制Tomcat监听的IP地址。 Tomcat的日志文件包括catalina.out、access.log等,作用是记录Tomcat的运行情况、访问日志等。catalina.xml包含了Tomcat的配置信息,可以进行一些高级配置。 如果8080端口被占用,可以查看Tomcat的日志文件,包括catalina.out和access.log,找到具体的错误信息并进行解决。 1.3 Maven作用: Maven是一个Java项目管理工具,可以帮助开发者自动化构建、测试和部署Java项目。Maven可以自动下载项目的依赖,管理项目的构建过程,生成项目的文档和报告等。Maven配置文件settings.xml,可以通过该文件修改Maven的一些配置信息,如代理服务器、本地仓库路径等。 1.4 数据库MySQL如何导出脚本: 可以使用MySQL自带的命令行工具mysqldump来导出脚本,执行命令:mysqldump -u username -p database_name > filename.sql,其中username是MySQL的用户名,database_name是要导出的数据库名称,filename.sql是导出的文件名。 Navicat初次连接报错显示乱码的解决办法是在Navicat中设置连接的字符集,选择UTF-8或者GBK等常用字符集即可。 2.1 导入Maven工程过程: 首先需要在IDE中打开Maven Projects视图,然后点击Import按钮,选择Existing Maven Projects,然后选择工程所在的文件夹,点击Finish即可导入Maven工程。 2.2 如何debug前台找后台: 可以通过在前台代码中打断点,然后使用浏览器访问前台页面,在断点处停下来,查看前台请求的URL和参数,然后在后台代码中打断点,查看后台代码执行的情况,以此来定位问题。 2.3 找一个喜欢的流程代码并解释清楚: 一个查询流程的代码示例: ```java // 创建一个DAO对象 UserDao userDao = new UserDaoImpl(); // 查询所有用户 List<User> userList = userDao.findAll(); // 遍历用户列表并输出每个用户的信息 for (User user : userList) { System.out.println(user); } ``` 该代码的主要功能是查询所有用户并输出每个用户的信息。首先创建一个DAO对象,然后调用findAll方法查询所有用户,返回一个User对象列表。然后遍历用户列表,输出每个用户的信息。 3.1 Spring AOP IOC 切面工程自己话解释六个注解: Spring AOP是Spring框架中的一个模块,用于实现面向切面编程。AOP的核心是切面(Aspect),切面由切点(Pointcut)和通知(Advice)组成。Spring AOP的IOC容器可以将切面对象自动注入到需要进行切面处理的对象中。常用的注解包括: - @Aspect:声明一个切面。 - @Pointcut:声明一个切点,用于匹配需要进行切面处理的方法。 - @Before:在目标方法执行之前执行通知。 - @After:在目标方法执行之后执行通知。 - @AfterReturning:在目标方法返回结果之后执行通知。 - @AfterThrowing:在目标方法抛出异常之后执行通知。 3.2 Spring MVC 3.2.1 Spring MVC常见注解作用: Spring MVC是Spring框架中的一个模块,用于实现Web应用程序的开发。常见的注解包括: - @Controller:声明一个控制器。 - @RequestMapping:将请求映射到控制器方法上。 - @RequestParam:获取请求中的参数。 - @PathVariable:获取请求中的路径变量。 - @ResponseBody:将返回结果作为响应体返回。 - @ModelAttribute:将请求参数绑定到Model中。 3.2.2 DispatcherServlet流程: DispatcherServlet是Spring MVC的核心组件,用于处理所有的请求。其主要流程包括: - 接收请求:DispatcherServlet接收所有的请求。 - 处理请求:DispatcherServlet将请求分发给对应的控制器进行处理。 - 生成响应:控制器处理请求后生成响应结果,DispatcherServlet将其封装成一个ModelAndView对象。 - 渲染视图:DispatcherServlet将ModelAndView对象传递给ViewResolver进行视图解析,生成最终的响应结果。 3.3.1 Mybatis编码注意事项: Mybatis是一个数据访问框架,使用SQL语句进行数据库操作。在使用Mybatis时,需要注意以下几点: - SQL注入:需要对输入参数进行验证和过滤,防止SQL注入攻击。 - 映射文件位置:需要将映射文件放在正确的位置,且文件名必须与对应的DAO接口名称相同。 - SQL语句书写规范:需要按照规范书写SQL语句,避免出现语法错误。 - 数据库连接配置:需要正确配置数据库连接信息,包括数据库驱动、URL、用户名和密码等。 3.3.2 常用动态标签解释: Mybatis中常用的动态标签包括if、choose、when、otherwise、foreach等,用于在SQL语句中动态生成条件。if标签用于生成一个条件判断语句,choose标签用于生成一个多条件判断语句,foreach标签用于生成一个循环语句。 4.1 列举一个后台报错: 例如,后台代码中出现了空指针异常,可以通过查看日志文件中的错误信息定位到具体的代码行数,然后检查代码中可能出现空指针的地方,如变量是否为空等。如果是变量为空导致的错误,可以添加判空逻辑来避免该错误。 5. 总结: 本篇简答题主要涉及了Java Web开发中常用的环境配置、工具使用、框架和技术等方面的内容,包括JDK、Tomcat、Maven、MySQL、Spring AOP、Spring MVC、Mybatis等。通过学习本篇简答题,可以掌握Java Web开发中的基础知识和常用技术,为开发Web应用程序打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值