我有一个包含3个模块的模块化maven项目。在其中一个(WEB)中,概要文件变量未被识别为环境变量,但它采用了它的真实名称,如下所示:
<Principal POM>
<Module App-core>
<Module ejb>
<Module web>
在主要POM中,有3个配置文件具有相同的配置文件属性,具有不同的值:
<profile1>
<environment>value1</environment>
<profile2>
<environment>value2</environment>
<profile3>
<environment>value3</environment>
该变量用作依赖关系的分类器变量,如下所示:
<dependency>
<groupId>com.test</groupId>
<artifactId>app-core</artifactId>
<version>1.0.0</version>
<classifier>${environment}</classifier>
</dependency>
在maven编译阶段,仅在Web Project中,它不会使用变量值更改变量名称。
任何帮助?
答案 0 :(得分:0)
标记profile1 profile2 profile3不启用替换属性。为此,您可以通过这种方式更改父pom
<project>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
<profiles>
<profile>
<id>profile1</id>
<properties>
<environment>value1</environment>
</properties>
</profile>
<profile>
<id>profile2</id>
<properties>
<environment>value2</environment>
</properties>
</profile>
<profile>
<id>profile3</id>
<properties>
<environment>value2</environment>
</properties>
</profile>
</profiles>
</project>
现在你必须运行 mvn install -P profile1 yourProjectName
答案 1 :(得分:0)
我已经解决了这个问题。
我已将依赖项复制到配置文件中。我有多个依赖项
这是profile1的代码
<profile>
<id>profile1</id>
<properties>
<environment>value1</environment>
</properties>
<dependency>
<groupId>com.test</groupId>
<artifactId>app-core</artifactId>
<version>1.0.0</version>
<classifier>${environment}</classifier>
</dependency>
</profile>
这是profiles2的代码
<profile>
<id>profile2</id>
<properties>
<environment>value2</environment>
</properties>
<dependency>
<groupId>com.test</groupId>
<artifactId>app-core</artifactId>
<version>1.0.0</version>
<classifier>${environment}</classifier>
</dependency>
</profile>
这个代码是profile3
<profile>
<id>profile3</id>
<properties>
<environment>value3</environment>
</properties>
<dependency>
<groupId>com.test</groupId>
<artifactId>app-core</artifactId>
<version>1.0.0</version>
<classifier>${environment}</classifier>
</dependency>
</profile>