我试图获取maven中所有活动配置文件的列表,并将它们用作资源过滤中的变量。
特别是当我运行类似
的东西时mvn package -Pprofile1,profile2
我想公开字符串" profile1,profile2"作为资源过滤中的变量。
例如,在我的pom.xml文件中,我有maven war插件配置如下,以允许对src / main / resources / META-INF目录中的所有内容进行资源过滤,并且我定义了一些配置文件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
</manifest>
</archive>
<webResources>
<resource>
<directory>src/main/resources</directory>
<!-- Only include the META-INF directory -->
<includes>
<include>META-INF/*</include>
</includes>
<!-- replace placeholder values -->
<filtering>true</filtering>
</resource>
</webResources>
</configuration>
</plugin>
...
<profiles>
<profile>
<id>profile1</id>
<properties>
<environment>profile1</environment>
</properties>
</profile>
<profile>
<id>profile2</id>
<properties>
<environment>profile2</environment>
</properties>
</profile>
在META-INF目录下,我有一个context.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/platform">
<Environment name="spring.profiles.active" value="${environment}" type="java.lang.String" />
</Context>
我尝试设置属性&#34; environment&#34;在每个配置文件下,但生成的context.xml文件仅使用最后一个&#34;环境&#34;变量(例如value = profile2)。
我也尝试过使用它:value=${project.activeProfiles}
但是会返回某种对象列表。如果我可以迭代这个列表并从配置文件中提取id来构建字符串,那将是很棒的,但是我无法在maven资源插件中找到任何文档来执行此操作。
我最终要做的是通过context.xml文件将spring.profiles.active
变量设置为环境变量,该变量与maven构建配置文件相同。
答案 0 :(得分:0)
您可以通过以下方式列出有效的个人资料:
2 1: 0 1
2 3: 0
5 1: 0
5 2: 0 1 2
5 3: 1
8 2: 0