如何在使用 Maven 时在属性文件中外部化多个参数?
How to externalise multiple parameter in a properties file while using maven?
我有 pom.xml 和需要 String [] 参数的自定义 mojo 插件。目前我正在使用 pom.xml 来设置值,但现在我希望它应该从属性文件中获取。
我正在使用 Maven 属性插件来读取简单的属性,但我无法为 String [] 这样做,我尝试放入;单独的格式,但我的构建无法成功运行。
我的 pom.xml 文件目前的值设置如下(有效)
<configuration>
<wcsServerId>${deployWcsServerId}</wcsServerId>
<deployments>
<param>@SITE:*</param>
<param>AttrTypes</param>
<param>ContentAttribute</param>
</deployments>
</configuration>
我已经尝试将以下内容放入我的属性文件中,并设法使用 Maven 属性插件读取它,但构建没有 运行 成功。
我的属性文件值
global.flags=@SITE:;AttrTypes:;ContentAttribute:;ContentFilter:
然后我按如下方式调用它,在运行时值被拾取但不知何故构建失败。
<configuration>
<wcsServerId>${deployWcsServerId}</wcsServerId>
<deployments>
<param>${global.flags}</param>
</deployments>
</configuration>
任何建议或 maven 插件推荐用于多个参数?
我自己设法解决了这个问题....
oracle csdt 插件要求按特定顺序传递参数。
CSDT 将按照找到的顺序处理项目。
这意味着它可以尝试在其依赖项之前导入资产,即使该依赖项存在于批处理的后期。
避免这些问题的方法是确保按顺序导入资产。
该顺序与您在创建网站时使用的顺序相同,例如@SITE、@ATTRIBUTE、@PARENTDEF 等
您可以使用 Maven settings.xml 文件来定义具有多个属性的特殊配置文件。
<settings>
<profiles>
<profile>
<id>MyProperties</id>
<properties>
<mojo.plugin.p1>@SITE:*</mojo.plugin.p1>
<mojo.plugin.p2>AttrTypes</mojo.plugin.p2>
...</properties></profile></profiles>
</settings>
然后让你的pom.xml看起来像
<configuration>
<wcsServerId>${deployWcsServerId}</wcsServerId>
<deployments>
<param>${mojo.plugin.p1}</param>
<param>${mojo.plugin.p2}</param>
<param>${...}</param>
</deployments>
</configuration>
现在您可以 运行 Maven 以这种方式
mvn -P >
此外,您还可以添加到您的 settings.xml 关注标签
<activeProfiles>
<activeProfile>MyProperties</activeProfile></activeProfiles>
我有 pom.xml 和需要 String [] 参数的自定义 mojo 插件。目前我正在使用 pom.xml 来设置值,但现在我希望它应该从属性文件中获取。
我正在使用 Maven 属性插件来读取简单的属性,但我无法为 String [] 这样做,我尝试放入;单独的格式,但我的构建无法成功运行。
我的 pom.xml 文件目前的值设置如下(有效)
<configuration>
<wcsServerId>${deployWcsServerId}</wcsServerId>
<deployments>
<param>@SITE:*</param>
<param>AttrTypes</param>
<param>ContentAttribute</param>
</deployments>
</configuration>
我已经尝试将以下内容放入我的属性文件中,并设法使用 Maven 属性插件读取它,但构建没有 运行 成功。
我的属性文件值
global.flags=@SITE:;AttrTypes:;ContentAttribute:;ContentFilter:
然后我按如下方式调用它,在运行时值被拾取但不知何故构建失败。
<configuration>
<wcsServerId>${deployWcsServerId}</wcsServerId>
<deployments>
<param>${global.flags}</param>
</deployments>
</configuration>
任何建议或 maven 插件推荐用于多个参数?
我自己设法解决了这个问题....
oracle csdt 插件要求按特定顺序传递参数。
CSDT 将按照找到的顺序处理项目。
这意味着它可以尝试在其依赖项之前导入资产,即使该依赖项存在于批处理的后期。
避免这些问题的方法是确保按顺序导入资产。
该顺序与您在创建网站时使用的顺序相同,例如@SITE、@ATTRIBUTE、@PARENTDEF 等
您可以使用 Maven settings.xml 文件来定义具有多个属性的特殊配置文件。
<settings>
<profiles>
<profile>
<id>MyProperties</id>
<properties>
<mojo.plugin.p1>@SITE:*</mojo.plugin.p1>
<mojo.plugin.p2>AttrTypes</mojo.plugin.p2>
...</properties></profile></profiles>
</settings>
然后让你的pom.xml看起来像
<configuration>
<wcsServerId>${deployWcsServerId}</wcsServerId>
<deployments>
<param>${mojo.plugin.p1}</param>
<param>${mojo.plugin.p2}</param>
<param>${...}</param>
</deployments>
</configuration>
现在您可以 运行 Maven 以这种方式
mvn -P
此外,您还可以添加到您的 settings.xml 关注标签
<activeProfiles>
<activeProfile>MyProperties</activeProfile></activeProfiles>