使用maven设置相对路径的正确姿势

一、什么是相对路径?

首先在介绍如何使用maven设置相对路径之前,我们需要先清楚什么是相对路径。相对路径是相对于当前文件路径的表示,即在不同的目录下我们可以使用相对路径来访问同一份文件。

比如我们有一个项目结构如下:

|
|--- src/
|    |--- main/
|    |    |--- java/
|    |    |--- resources/
|    |    |    |--- properties/
|    |    |    |    |--- db.properties
|    |    |--- webapp/
|    |         |--- WEB-INF/
|    |              |--- jsp/
|    |                   |--- login.jsp
|    |                   |--- index.jsp

我们在login.jsp中想要引用db.properties文件,如果我们使用绝对路径,就需要写成:

<%@ page import="java.util.Properties" %>
<%@ page import="java.io.FileInputStream" %>
<% 
   String path = request.getSession().getServletContext().getRealPath("/WEB-INF/classes/properties/db.properties");
   Properties props = new Properties();
   FileInputStream in = new FileInputStream(path);
   props.load(in);
   String url = props.getProperty("url");
   String username = props.getProperty("username");
   String password = props.getProperty("password");
   in.close();
%>

但是如果我们使用相对路径,就可以写成:

<%@ page import="java.util.Properties" %>
<%@ page import="java.io.FileInputStream" %>
<% 
   String path = request.getSession().getServletContext().getRealPath("/WEB-INF/classes/properties/db.properties");
   Properties props = new Properties();
   FileInputStream in = new FileInputStream(path);
   props.load(in);
   String url = props.getProperty("url");
   String username = props.getProperty("username");
   String password = props.getProperty("password");
   in.close();
%>

二、如何使用maven设置相对路径?

Maven是Java开发中使用最广泛的自动化构建工具之一。在使用Maven构建项目时,我们可以使用${project.basedir}来表示项目的根目录,这样就可以避免手动指定绝对路径的麻烦。以下是一些示例。

三、使用相对路径指定src文件夹下文件的位置

在Maven项目开发中,除了在webapp目录下的文件,我们还可能会在src/main/java、src/main/resources或者src/test/java中需要调用其他资源文件,这时使用相对路径就很方便。

1.设置log4j.properties位置

假如我们的log4j.properties文件在src/main/resources目录下,它的内容如下:

# 日志输出级别
log4j.rootLogger=INFO, stdout
# 控制台输出
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %t %c{1}:%L - %m%n

在pom.xml文件中,我们可以添加以下配置:

<project>
    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
                <includes>
                    <include>log4j.properties</include>
                </includes>
                <targetPath>../classes</targetPath>
            </resource>
        </resources>
    </build>
</project>

使用Maven命令来构建项目:mvn clean package,在target目录下会生成一个classes文件夹。其中log4j.properties文件就会出现在classes下了。

2.使用相对路径设置dubbo.properties位置

同样道理,我们还可以使用相对路径来设置dubbo.properties文件的位置。

<project>
    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
                <includes>
                    <include>dubbo.properties</include>
                </includes>
                <targetPath>../classes</targetPath>
            </resource>
        </resources>
    </build>
</project>

这样一来,在src/main/resources目录下创建dubbo.properties文件就可以被正常引用了。

四、使用相对路径指定webapp下文件的位置

1.使用相对路径指定jsp文件的位置

在web应用中,最常用的就是jsp文件了。假如我们的index.jsp和login.jsp都在webapp/jsp目录下,而我们的css文件都在webapp/css文件夹下。

|
|--- src/
|    |--- main/
|    |--- webapp/
|    |    |--- css/
|    |    |    |--- style.css
|    |    |--- jsp/
|    |         |--- login.jsp
|    |         |--- index.jsp

在index.jsp中想要使用css文件,我们可以这样写:

<link rel="stylesheet" type="text/css" href="../css/style.css">

这里的../表示返回上一级目录,也就是从webapp/jsp返回到webapp下。

另外,在我们的login.jsp中想要引用某些js库的话,可以这样写:

<script src="../js/jquery.min.js"></script>

2.使用相对路径指定web.xml文件的位置

我们知道,web.xml是web应用的配置文件,我们可以配置拦截器、servlet、监听器等等。在web.xml中,我们有时需要引用其他文件,这时候使用相对路径就可以避免绝对路径的麻烦。

例如,我们要在web.xml中引用spring配置文件,可以这样写:

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        classpath:../spring/applicationContext.xml
        classpath:../spring/spring-mybatis.xml
    </param-value>
</context-param>

总结

相对路径在项目中应用广泛,而maven的出现为我们的开发过程提供了便利。在使用Maven构建项目时,我们可以使用${project.basedir}来避免手动指定绝对路径的麻烦,使用相对路径既方便又实用。

原创文章,作者:ZYZY,如若转载,请注明出处:https://www.506064.com/n/148836.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
ZYZYZYZY
上一篇 2024-11-04 17:48
下一篇 2024-11-04 17:48

相关推荐

  • 如何查看Anaconda中Python路径

    对Anaconda中Python路径即conda环境的查看进行详细的阐述。 一、使用命令行查看 1、在Windows系统中,可以使用命令提示符(cmd)或者Anaconda Pro…

    编程 2025-04-29
  • 如何在代码中打出正确的横杆

    在编程中,横杆是一个很常见的符号,但是有些人可能会在打横杆时出错。本文将从多个方面详细介绍如何在代码中打出正确的横杆。 一、正常使用横杆 在代码中,直接使用“-”即可打出横杆。例如…

    编程 2025-04-29
  • Git config命令用法介绍:用正确的邮箱保障开发工作

    本文将详细介绍如何使用git config命令配置Git的全局和本地用户信息,特别是如何正确使用用户邮箱,保障Git操作的正常进行。 一、git config命令介绍 Git中的每…

    编程 2025-04-29
  • Python文件路径赋值

    Python中文件操作是非常基本的操作,而文件路径是文件操作的前提。本文将从多个方面阐述如何在Python中赋值文件路径。 一、绝对路径和相对路径 在Python中,路径可以分为绝…

    编程 2025-04-28
  • 请确保正确设置spring.boot.admin.client.instance

    spring.boot.admin.client.instance是一个非常关键的设置,它能够帮助我们确保应用程序在正确的Spring Boot Admin Server上注册。在…

    编程 2025-04-28
  • JS图片沿着SVG路径移动实现方法

    本文将为大家详细介绍如何使用JS实现图片沿着SVG路径移动的效果,包括路径制作、路径效果、以及实现代码等内容。 一、路径制作 路径的制作,我们需要使用到SVG,SVG是可缩放矢量图…

    编程 2025-04-27
  • Python3文件路径操作

    Python3中文件路径操作是日常编程中常用到的基础操作之一。在Python中,我们可以使用内置库os来操作文件路径,包括创建、删除、移动、复制等文件操作。本文将深度解析Pytho…

    编程 2025-04-27
  • Python文件相对路径怎么写

    Python是一门被广泛使用的编程语言,Python脚本通常需要对文件进行读写操作。而那些需要读写的文件,其路径往往并不在Python脚本的同一目录下,这就需要我们了解Python…

    编程 2025-04-27
  • 关键路径的详细阐述

    关键路径是项目管理中非常重要的一个概念,它通常指的是项目中最长的一条路径,它决定了整个项目的完成时间。在这篇文章中,我们将从多个方面对关键路径做详细的阐述。 一、概念 关键路径是指…

    编程 2025-04-25
  • 深入了解scala-maven-plugin

    一、简介 Scala-maven-plugin 是一个创造和管理 Scala 项目的maven插件,它可以自动生成基本项目结构、依赖配置、Scala文件等。使用它可以使我们专注于代…

    编程 2025-04-25

发表回复

登录后才能评论