首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

项目管理工具Maven的简单配置示例

编程知识
2024年08月11日 15:05

Maven是一个强大的项目管理工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档。以下是一些关于Maven的具体例子,涵盖了项目配置、依赖管理、插件使用等方面:

1. Maven项目基础配置

Maven项目的基础配置通常体现在pom.xml文件中,该文件是Maven项目的核心配置文件。以下是一个简单的pom.xml示例,展示了项目的基本信息、依赖管理等配置:

<project xmlns="http://maven.apache.org/POM/4.0.0"  
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
    <modelVersion>4.0.0</modelVersion>  
    <groupId>com.example</groupId>  
    <artifactId>my-project</artifactId>  
    <version>1.0-SNAPSHOT</version>  
    <packaging>jar</packaging>  
  
    <dependencies>  
        <!-- 添加JUnit依赖 -->  
        <dependency>  
            <groupId>junit</groupId>  
            <artifactId>junit</artifactId>  
            <version>4.13.2</version>  
            <scope>test</scope>  
        </dependency>  
  
        <!-- 添加MySQL数据库连接驱动依赖 -->  
        <dependency>  
            <groupId>mysql</groupId>  
            <artifactId>mysql-connector-java</artifactId>  
            <version>8.0.28</version>  
        </dependency>  
    </dependencies>  
  
    <build>  
        <plugins>  
            <!-- 配置maven-compiler-plugin插件,设置Java编译版本 -->  
            <plugin>  
                <groupId>org.apache.maven.plugins</groupId>  
                <artifactId>maven-compiler-plugin</artifactId>  
                <version>3.8.1</version>  
                <configuration>  
                    <source>1.8</source>  
                    <target>1.8</target>  
                </configuration>  
            </plugin>  
        </plugins>  
    </build>  
</project>

2. Maven依赖管理

Maven的依赖管理功能允许项目声明其所需的依赖项,并自动从Maven仓库下载这些依赖项及其传递性依赖项。以下是一个依赖管理示例,展示了如何添加Spring框架的依赖:

<dependencies>  
    <!-- Spring框架核心依赖 -->  
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-context</artifactId>  
        <version>5.3.10</version>  
    </dependency>  
  
    <!-- Spring MVC依赖 -->  
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-webmvc</artifactId>  
        <version>5.3.10</version>  
    </dependency>  
  
    <!-- 其他依赖... -->  
</dependencies>

3. Maven插件使用

Maven插件用于在项目的构建生命周期中执行特定任务。以下是一个使用maven-jar-plugin插件配置JAR文件生成的示例:

<build>  
    <plugins>  
        <plugin>  
            <groupId>org.apache.maven.plugins</groupId>  
            <artifactId>maven-jar-plugin</artifactId>  
            <version>3.2.0</version>  
            <configuration>  
                <archive>  
                    <manifest>  
                        <addClasspath>true</addClasspath>  
                        <classpathPrefix>lib/</classpathPrefix>  
                        <mainClass>com.example.MainClass</mainClass>  
                    </manifest>  
                </archive>  
            </configuration>  
        </plugin>  
    </plugins>  
</build>

4. Maven构建配置文件(Profiles)

Maven的Profiles功能允许为不同的环境或目标定制构建配置。以下是一个使用Profiles配置不同数据库连接的示例:

<profiles>  
    <profile>  
        <id>development</id>  
        <properties>  
            <db.url>jdbc:mysql://localhost:3306/devdb</db.url>  
            <db.user>devuser</db.user>  
            <db.password>devpass</db.password>  
        </properties>  
    </profile>  
  
    <profile>  
        <id>production</id>  
        <properties>

5. Maven Profiles配置不同数据库连接的示例

Profiles在Maven中用于定义不同的构建环境,如开发环境、测试环境和生产环境等。每个Profile可以包含特定的配置,如数据库连接信息、插件配置等。以下是一个更完整的示例,展示了如何在Maven中使用Profiles来配置不同的数据库连接:

<project xmlns="http://maven.apache.org/POM/4.0.0"  
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
    <!-- ... 其他配置 ... -->  
  
    <profiles>  
        <!-- 开发环境配置 -->  
        <profile>  
            <id>development</id>  
            <properties>  
                <db.url>jdbc:mysql://localhost:3306/devdb</db.url>  
                <db.user>devuser</db.user>  
                <db.password>devpass</db.password>  
            </properties>  
            <!-- 可以为开发环境配置特定的插件或依赖 -->  
        </profile>  
  
        <!-- 测试环境配置 -->  
        <profile>  
            <id>test</id>  
            <properties>  
                <db.url>jdbc:mysql://testserver:3306/testdb</db.url>  
                <db.user>testuser</db.user>  
                <db.password>testpass</db.password>  
            </properties>  
            <!-- 可以为测试环境配置特定的插件或依赖 -->  
        </profile>  
  
        <!-- 生产环境配置 -->  
        <profile>  
            <id>production</id>  
            <properties>  
                <db.url>jdbc:mysql://productionserver:3306/proddb</db.url>  
                <db.user>produser</db.user>  
                <db.password>prodpass</db.password>  
            </properties>  
            <!-- 可以为生产环境配置特定的插件或依赖 -->  
        </profile>  
    </profiles>  
  
    <!-- 使用filters来替换资源文件中的占位符 -->  
    <build>  
        <filters>  
            <filter>src/main/filters/${env}.properties</filter> <!-- 假设我们根据环境准备了不同的properties文件 -->  
        </filters>  
        <resources>  
            <resource>  
                <directory>src/main/resources</directory>  
                <filtering>true</filtering> <!-- 开启filtering来替换文件中的占位符 -->  
            </resource>  
        </resources>  
        <!-- ... 其他构建配置 ... -->  
    </build>  
  
    <!-- 注意:这里的${env}需要在构建时通过Maven命令指定,如mvn clean install -Pdevelopment -Denv=development -->  
</project>

注意,上述示例中的${env}变量并不是Maven内置支持的,Maven本身不会自动解析这个变量。为了根据激活的Profile来加载不同的配置文件,通常的做法是在构建命令中指定Profile,并在构建过程中使用Maven的filters机制来替换资源文件中的占位符。

但更常见的做法是直接在激活的Profile中定义资源文件的位置,或者使用Spring框架的@Profile注解(如果你在使用Spring)来根据不同的环境加载不同的配置类。

对于Maven的filters机制,我们通常需要在src/main/resources目录下准备包含占位符的配置文件,然后在构建时根据激活的Profile来替换这些占位符。不过,这通常涉及到在构建脚本或Maven命令中显式指定要使用的资源文件,而不是通过${env}这样的变量来动态选择。在实际项目中,我们可能需要根据项目的具体需求和构建流程来调整上述配置。

From:https://www.cnblogs.com/TS86/p/18353526
本文地址: http://shuzixingkong.net/article/986
0评论
提交 加载更多评论
其他文章 Java方法小白版
一、方法的定义 方法就是 将功能重复的代码封装成一段独立的代码,通过调用方法的方式 (作用)提高代码的复用性(减少代码重复)。 每一个方法只能完成一个功能。 二、方法的声明格式 [修饰符1,修饰符2] 返回值类型 方法名 (参数类型 形式参数1,参数类型 形式参数2,...){ 执行语句块; ret
Java数组小白版
一、数组概念 一、数组定义 数组就是指在计算机内存中开辟的连续存储空间,用于存放程序运行中需要用到的一组相同类型数据的容器。 二.数组的声明 +数组的长度 定义数组时需要确定数组的长度(元素的个数),确定后不能更改; 获取数组长度:数组名.length 1. 格式1(默认初始值) 数据类型 [ ]
横扫鸿蒙弹窗乱象,SmartDialog出世
前言 但凡用过鸿蒙原生弹窗的小伙伴,就能体会到它们是有多么的难用和奇葩,什么AlertDialog,CustomDialog,SubWindow,bindXxx,只要大家用心去体验,就能发现他们有很多离谱的设计和限制,时常就是一边用,一边骂骂咧咧的吐槽 实属无奈,就把鸿蒙版的SmartDialog写
横扫鸿蒙弹窗乱象,SmartDialog出世 横扫鸿蒙弹窗乱象,SmartDialog出世 横扫鸿蒙弹窗乱象,SmartDialog出世
FFmpeg开发笔记(四十六)利用SRT协议构建手机APP的直播Demo
​不管是传统互联网还是移动互联网,实时数据传输都是刚需,比如以QQ、微信为代表的即时通信工具,能够实时传输文本和图片。其中一对一的图文通信叫做私聊,多对多的图文通信叫做群聊。 除了常见的图文即时通信,还有实时音视频通信,比如一对一的音频通话、一对一的视频通话等等,此时可采用WebRTC技术,有关We
FFmpeg开发笔记(四十六)利用SRT协议构建手机APP的直播Demo FFmpeg开发笔记(四十六)利用SRT协议构建手机APP的直播Demo FFmpeg开发笔记(四十六)利用SRT协议构建手机APP的直播Demo
旧物利用 - 将机顶盒改造为一台Linux开发机!
前言 家里的机顶盒淘汰下来,博主想要物尽其用,看看是否能将其改造为一台Ubuntu&quot;开发机&quot;,故开始倒腾 准备工作 机顶盒型号:移动魔百盒CM201-2(CH),芯片组: hi3798mv300(hi3798mv3dmm),其他型号类似 理论上适用于以下SOC的机顶盒:Hi379
旧物利用 - 将机顶盒改造为一台Linux开发机! 旧物利用 - 将机顶盒改造为一台Linux开发机! 旧物利用 - 将机顶盒改造为一台Linux开发机!
这是DDD建模最难的部分(其实很简单)
本文书接上回《为了落地DDD,我是这样“PUA”大家的》 ,欢迎关注我的同名公众号。 https://mp.weixin.qq.com/s/DjC0FSWY1bgJyLPIND5evA 什么是最重要的事 如果你认真读过前面的文章,那么一定知道我们的核心逻辑:领域驱动是一种价值观,这个价值观是:“领域
这是DDD建模最难的部分(其实很简单) 这是DDD建模最难的部分(其实很简单) 这是DDD建模最难的部分(其实很简单)
FreeSWITCH对接http协议的tts服务
操作系统 :CentOS 7.6_x64 FreeSWITCH版本 :1.10.9 FreeSWITCH里面有个mod_tts_commandline模块,可以用来对接http协议的tts服务,今天整理下这方面的笔记,并提供相关演示效果及资源下载。 我将从以下几个方面进行展开: 自建tts服务模拟测
FreeSWITCH对接http协议的tts服务 FreeSWITCH对接http协议的tts服务 FreeSWITCH对接http协议的tts服务
实战-行业攻防应急响应
实战-行业攻防应急响应 简介: 服务器场景操作系统 Ubuntu 服务器账号密码:root/security123 分析流量包在/home/security/security.pcap 相关jar包在/home/security/ruoyi/ruoyi-admin.jar 应急主机: 192.168
实战-行业攻防应急响应 实战-行业攻防应急响应 实战-行业攻防应急响应