依赖项的Maven项目变量
我有一个加载applet的html文件。 html需要按名称引用jar,并且由于maven根据artifactid,version等命名它,因此html需要随着项目的发展而动态更新。 似乎资源过滤是可行的方法,但我无法弄清楚要插入的变量应该是什么样子。 我想要一些类似于$ {project.dependencies.myartifactid.version}的内容,但这似乎不是一个选项,而且我有一个糟糕的运气谷歌搜索。
你需要像${project.dependencies[0].artifactId}
,其中0
是war模块中applet依赖关系的索引(参见PLXUTILS-37 )。 事实上,使用资源过滤应该有效。
更新: Maven Resources Plugin中似乎存在错误,此属性不会按照此问题中的提及进行过滤。 您可能必须使用此答案中建议的解决方法。
据我所知,你试图让版本保持最新,同时期望其余版本保持不变。 有两种选择。
第一种是从名称中删除版本,以便不需要更改HTML。 您可以在此处通过搜索archiva-applet
查看实际示例: http : //svn.apache.org/repos/asf/archiva/tags/archiva-1.3/archiva-modules/archiva-web/archiva-webapp/pom。 XML
在这个例子中,既然你不想在WEB-INF/classes
使用applet,它会从webapp中省略,然后通过Dependency插件包含:
org.apache.maven.plugins maven-dependency-plugin 2.0 copy process-resources copy ${project.groupId} archiva-applet ${project.version} src/main/webapp archiva-applet.jar
如果您使用的是Maven 2.1.0+,则可以使用prepare-package
阶段并将其直接复制到输出而无需修改源目录。
然后,使用单个名称引用HTML中的applet。
如果要继续过滤并保留版本,另一种解决方案是使用共享属性:
1.2.3
…
my.group my.applet ${applet.version}
…
然后,您可以在HTML中使用${applet.version}
,但仍然只需在一个位置更改它。
来自http://docs.codehaus.org/display/MAVENUSER/MavenPropertiesGuide :
${project.build.finalName}
指的是打包构建项目时创建的文件的最终名称
另一个选择是将set ${project.build.finalName}
更改${project.build.finalName}
POM中的静态字符串:
foo