Maven 2 Maven插件通过系统属性初始化复杂参数
我需要从控制台运行maven插件。在插件中,我需要一个复杂的参数类型:Maven 2 Maven插件通过系统属性初始化复杂参数,maven-2,maven,maven-plugin,Maven 2,Maven,Maven Plugin,我需要从控制台运行maven插件。在插件中,我需要一个复杂的参数类型: /** * @goal do-automation **/ public class AutomationMojo extends AbstractMojo { /** * The current maven project. * * @parameter expression="${project}" */ protected MavenProject project; /** * App configura
/**
* @goal do-automation
**/
public class AutomationMojo extends AbstractMojo {
/**
* The current maven project.
*
* @parameter expression="${project}"
*/
protected MavenProject project;
/**
* App configuration.
*
* @parameter expression="${appConfig}"
*/
private AppConfig appConfig;
AppConfig参数的外观如下所示:
public class AppConfig {
private String path
private String version
}
我将以以下方式运行maven插件:
mvn组:工件:版本:do automation-Dproperty.for.appConfig
如何通过系统属性设置AppConfig属性?有可能吗
我尝试了以下方法,但对我无效:
public class AppConfig {
/**
* @parameter expression="${path}"
*/
private String path
private String version
}
mvn组:工件:1.0-SNAPSHOT:do automation-DappConfig.path=122-Dpath=122
它创建了属性值为空的AppConfig
我正在使用:
ApacheMaven 2.2.1(r801777;2009-08-06 14:46:01-0430)
Java版本:1.6.0_21
Java主页:c:\Program Files\Java\jdk1.6.0\U 21\jre
默认区域设置:en_US,平台编码:Cp1252
操作系统名称:“windows 7”版本:“6.1”拱门:“x86”系列:“windows”您已经阅读过。以下是摘录:
configuration@parameter expression=“${aSystemProperty}”
默认值=“${anExpression}”
指定用于计算要注入的值的表达式
在构建时输入Mojo的这个参数。表达式由
默认值通常用于引用中的特定元素
POM,例如${project.resources},它引用
用于在结果JAR文件中伴随类的资源。属于
当然,默认值不必是表达式,也可以是表达式
简单常数,如true或1.5。以及字符串类型的参数
可以将表达式与文字值混合使用,例如。
${project.artifactId}-${project.version}-special。系统属性
通过表达式给定,用户可以覆盖
命令行via-DaSystemProperty=value。注:如果两者都没有
未指定默认值或表达式,参数只能为
从POM配置。需要使用“${”和“}”来
划界可计算的实际表达式
您应该按照以下方式更改配置:
/**
* App configuration.
*
* @parameter
*/
private AppConfig appConfig;
public class AppConfig {
/**
* @parameter expression="${appConfig.path}"
*/
private String path
/**
* @parameter expression="${appConfig.version}*/
private String version
}
这将提供使用系统配置参数的机会。首先,我会通过插件的常规配置标签检查配置是否按预期工作,以查看是否有其他错误。事实上,Maven 3提供了一些其他方法来实现您想要的功能。请看一下这个链接,部分(Bean默认属性) 您可以在AppConfig中定义set(stringconfigstr)方法,并解析从命令行传递的字符串。比如说
mvn group:artifact:1.0-SNAPSHOT:do-automation -DappConfig=my/path,version
然后,您将能够适当地解析set(…)方法中的“my/path,version”。您是否通过pom中的常规配置而不是命令行中的参数进行了检查?