Maven 测试 - 如何从 Java 获取当前的 Maven 设置
Maven Testing - How can I get current Maven Settings from Java
我正在 Maven 中为 WCC 组件构建集成测试。
在mavens中pom.xml
我也配置了一个插件:
- 构建组件
- 部署组件
- 启用组件
- 重启组件
完成后,我将着手获取 Maven-Failsafe-Plugin 来测试已安装的插件。
在测试插件之前,我需要进行一些设置。我决定最简单的方法是为我的集成测试创建一个父 class,只有当它还没有 运行 时才会初始化。
示例:
@BeforeClass
public static initialize()
{
//lazy init here
}
由于我的组件已经 installed/enabled 来自 Maven 配置,我想利用该信息而不是为集成测试复制它。
在我的 pom.xml
我有:
<plugin>
<groupId>org.ucmtwine</groupId>
<artifactId>ucm-maven-plugin</artifactId>
<version>0.1.2-SNAPSHOT</version>
<extensions>true</extensions> <!-- Allows WCC packaging type -->
<configuration>
<servers>
<server>
<id>sandbox</id>
<url>http://localhost:16200/cs/idcplg</url>
<username>myUser</username>
<password>myPass</password>
<adminServer>
<hostname>localhost</hostname>
<serverName>AdminAServer</serverName>
<wlsServerName>UCM_server1</wlsServerName>
</adminServer>
</server>
</servers>
</configuration>
</plugin>
如何从我的 @BeforeClass
初始化方法访问该信息?此外,我的 Maven 插件还支持 -Dserver
,因此用户可以选择要使用的服务器配置(基于 ID)。我将如何访问该参数?
注意:我没有为此使用 settings.xml
。
IMO 你不应该尝试这样做。 settings.xml
作为 Maven 和 Maven 插件可访问的典型 Maven 文件。该组件是一段独立的代码,您不应该尝试混合使用这两者。
我可以想到几个选项:
- 为您的组件集成测试提供正确的配置,例如通过系统属性或属性文件。在这两种情况下,您可能需要一个额外的 maven-plugin 来准备它(在预集成测试期间)。但是,这使得在 IDE.
中直接 运行 变得有点困难
- 使用您的 maven 插件对组件进行真正的集成测试。最后,这可能也是组件使用方式的首选方式。
- 不要为此使用 maven-failsafe-plugin。创建一个单独的 Java 项目用于集成测试,您可以在其中控制环境设置。
前两个最符合您的要求,但我更喜欢第三个选项。
我正在 Maven 中为 WCC 组件构建集成测试。
在mavens中pom.xml
我也配置了一个插件:
- 构建组件
- 部署组件
- 启用组件
- 重启组件
完成后,我将着手获取 Maven-Failsafe-Plugin 来测试已安装的插件。
在测试插件之前,我需要进行一些设置。我决定最简单的方法是为我的集成测试创建一个父 class,只有当它还没有 运行 时才会初始化。
示例:
@BeforeClass
public static initialize()
{
//lazy init here
}
由于我的组件已经 installed/enabled 来自 Maven 配置,我想利用该信息而不是为集成测试复制它。
在我的 pom.xml
我有:
<plugin>
<groupId>org.ucmtwine</groupId>
<artifactId>ucm-maven-plugin</artifactId>
<version>0.1.2-SNAPSHOT</version>
<extensions>true</extensions> <!-- Allows WCC packaging type -->
<configuration>
<servers>
<server>
<id>sandbox</id>
<url>http://localhost:16200/cs/idcplg</url>
<username>myUser</username>
<password>myPass</password>
<adminServer>
<hostname>localhost</hostname>
<serverName>AdminAServer</serverName>
<wlsServerName>UCM_server1</wlsServerName>
</adminServer>
</server>
</servers>
</configuration>
</plugin>
如何从我的 @BeforeClass
初始化方法访问该信息?此外,我的 Maven 插件还支持 -Dserver
,因此用户可以选择要使用的服务器配置(基于 ID)。我将如何访问该参数?
注意:我没有为此使用 settings.xml
。
IMO 你不应该尝试这样做。 settings.xml
作为 Maven 和 Maven 插件可访问的典型 Maven 文件。该组件是一段独立的代码,您不应该尝试混合使用这两者。
我可以想到几个选项:
- 为您的组件集成测试提供正确的配置,例如通过系统属性或属性文件。在这两种情况下,您可能需要一个额外的 maven-plugin 来准备它(在预集成测试期间)。但是,这使得在 IDE. 中直接 运行 变得有点困难
- 使用您的 maven 插件对组件进行真正的集成测试。最后,这可能也是组件使用方式的首选方式。
- 不要为此使用 maven-failsafe-plugin。创建一个单独的 Java 项目用于集成测试,您可以在其中控制环境设置。
前两个最符合您的要求,但我更喜欢第三个选项。