💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# 如何使用 Maven 配置文件 > 原文: [https://javatutorial.net/how-to-use-maven-profiles](https://javatutorial.net/how-to-use-maven-profiles) 简而言之, [Maven](https://javatutorial.net/how-to-install-maven-on-windows-linux-and-mac) 配置文件是一组覆盖默认值的配置值。 通过使用它,您可以为不同的环境(生产/开发)创建自定义版本。 ![java-featured-image](https://img.kancloud.cn/05/3e/053ee0bb59842d92359246c98f815e0c_780x330.jpg) 在继续学习本教程的内容之前,假定您已经安装了 Maven。 如果您不这样做,请按照本教程 的逐步指南进行操作。 要在 Maven 中指定配置文件,您需要使用`pom.xml`文件中的`activeProfiles`或配置文件元素。`pom.xml`在**运行时**时被修改。 有 3 种构建配置文件类型。 1. 每个项目 1. 在`pom.xml`文件中定义 2. 每位使用者 1. 在 Maven 设置 xml 文件(`%USER_HOME%/.m2/settings.xml`)中定义 3. 全球 1. 在 Maven 全局设置 xml 文件(`%M2_HOME%/conf/settings.xml`)中定义 如何提示 Maven Build 配置文件? 有两种方法: 1. 终端–本教程涵盖 2. Maven 设置–本教程涵盖 3. 环境变量–在本教程中涵盖 4. 操作系统设置 5. 存在或缺少文件 ### 显式激活配置文件 创建您的 Maven 项目(如果尚未创建),然后创建第一个简单的配置文件`test1`。 这是我添加的`pom.xml`代码 ```java <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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>mavenprofilesdemo</groupId> <artifactId>mavenprofilesdemo</artifactId> <packaging>jar</packaging> <version>0.0.1-SNAPSHOT</version> <name>Maven Quick Start Archetype</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> <profiles> <profile> <id>test1</id> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <fork>true</fork> <compilerVersion>1.5</compilerVersion> </configuration> </plugin> </plugins> </build> </profile> </profiles> </project> ``` `<profiles>` -&gt; `<profile>` -&gt; `id`;那是我们指定如何引用配置文件的地方。 不要错过该行,这很重要,因为它不仅是必填项,而且如果您省略它,则将无法访问您的个人资料。 我们在`pom.xml`文件中所做的是,我们已覆盖了编译器插件设置。 我们已将编译器的版本设置为 1.5,并将`fork`设置为`true`。 请记住,在这种情况下,我们仅创建了 1 个配置文件,但是我们也可以在`<profiles>`标签内添加更多`<profile>`标签。 覆盖所需的插件之后,该运行我们的配置文件了。 您可以通过在命令行中输入`mvn test -P <id>`来运行它 在我们的例子中,我们需要编写`mvn test -Ptest1`,因为我们创建的个人资料给我们提供了值为`test1`的 ID。 现在转到项目的文件夹位置,然后输入`mvn test -P <您的配置文件 ID>`。如果我在上面的示例中运行此命令,则得到的结果是: ```java [INFO] Scanning for projects... [INFO] [INFO] ----------------< mavenprofilesdemo:mavenprofilesdemo >----------------- [INFO] Building Maven Quick Start Archetype 0.0.1-SNAPSHOT [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ mavenprofilesdemo --- [WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent! [INFO] skip non existing resourceDirectory D:\Eclipse Projects\mavenprofilesdemo\src\main\resources [INFO] [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ mavenprofilesdemo --- [INFO] Nothing to compile - all classes are up to date [INFO] [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ mavenprofilesdemo --- [WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent! [INFO] skip non existing resourceDirectory D:\Eclipse Projects\mavenprofilesdemo\src\test\resources [INFO] [INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ mavenprofilesdemo --- [INFO] Nothing to compile - all classes are up to date [INFO] [INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ mavenprofilesdemo --- [INFO] Surefire report directory: D:\Eclipse Projects\mavenprofilesdemo\target\surefire-reports ------------------------------------------------------- T E S T S ------------------------------------------------------- Running mavenprofilesdemo.mavenprofilesdemo.AppTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 sec Results : Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1.072 s [INFO] Finished at: 2019-08-18T09:15:55+01:00 [INFO] ------------------------------------------------------------------------ ``` ### 使用 Maven 设置激活配置文件 转到您的用户主目录,然后打开`.m2`文件夹。 如果那里没有`settings.xml`文件,请创建一个。 然后将我们创建的配置文件添加为活动配置文件。 使用以下代码: ```java <settings 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/settings-1.0.0.xsd"> <mirrors> <mirror> <id>maven.dev.snaponglobal.com</id> <name>Internal Artifactory Maven repository</name> <url>http://repo1.maven.org/maven2/</url> <mirrorOf>*</mirrorOf> </mirror> </mirrors> <activeProfiles> <activeProfile>test</activeProfile> </activeProfiles> </settings> ``` 现在,转到包含`pom.xml`文件的文件夹并执行`mvn test`。 ### 使用环境变量激活配置文件 删除`settings.xml`文件并在`name`标签中添加`env`值。 像这样: ```java <profile> <id>test</id> <activation> <property> <name>env</name> <value>test1</value> </property> </activation> </profile> ``` 您必须创建一个称为`env`的环境变量,并将其值设置为`test1`。 转到包含`pom.xml`的文件夹,然后键入`mvn test`。 如果您希望将自定义库包含到 maven 本地存储库中,可以遵循[本文](https://javatutorial.net/how-to-include-custom-library-into-maven-local-repository)。