我正在尝试为maven设置enforcer插件以强制执行最低Java版本.但是,每当我试图跑步时mvn enforcer:enforce,我得到:
目标org.apache.maven.plugins:maven-enforcer-plugin:1.3.1:enforce的参数'rules'缺失或无效
这是我的pom文件的相关部分:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.3.1</version>
<executions>
<execution>
<id>enforce-java</id>
<phase>validate</phase>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireJavaVersion>
<version>(1.7.0-20,)</version>
</requireJavaVersion>
</rules>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
我也试过更换<requireJavaVersion>块<alwaysPass/>,以防万一无效,但它仍然失败并出现同样的错误.
我将我的应用程序设置为使用 Spring 云配置来提供配置,并启用监视器,以便配置服务器将更改事件发布到我的应用程序。配置已正确更新,但我希望在配置更改时收到通知,以便我可以根据新配置执行一些自定义逻辑。
我有这个配置对象
@Configuration
@RefreshScope
@ConfigurationProperties(prefix = "my.prefix")
public class MyConfig {
private Map<String, MyObject> configs;
private String someValue;
public Map<String, MyObject> getConfigs(){...}
public void setConfigs(){...}
public String getSomeValue(){...}
public void setSomeValue(){...}
}
...
public class MyObject {
private String field1;
public String getField1() {...}
public void setField1() {...}
}
Run Code Online (Sandbox Code Playgroud)
这在我的配置服务器 application.yml 中
my:
prefix:
configs:
TEST:
field1: "testValue"
someValue: "test"
Run Code Online (Sandbox Code Playgroud)
现在,当我更改配置中的 someValue 并且配置服务器发布刷新时,它会调用 setSomeValue() 并将该值更新为新值。我可以将自定义逻辑添加到 setSomeValue() 中,它会正常工作。然而,在更新或添加/删除配置中的条目时,它似乎没有调用 setConfigs() 或 setField1() 。
我尝试注册 EnviornmentChangeEvents、RefreshEvents 或 RefreshScopeRefreshedEvents 的侦听器,但这些侦听器要么在 Spring 更新值之前触发,要么根本不触发。我还尝试向 …