栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用Maven生成具有所有依赖项的xml文件

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Maven生成具有所有依赖项的xml文件

我不太了解JBoss以及是否还有另一种方式可以做到这一点,但是您可以使用GMaven非常简单地做到这一点:

<plugin>    <groupId>org.prehaus.gmaven</groupId>    <artifactId>gmaven-plugin</artifactId>    <version>1.3</version>    <configuration>        <source> def sw = new StringWriter() def xml = new groovy.xml.MarkupBuilder(sw) xml.module(xmlns:'urn:jboss:module:1.0', name:'ats.platform') {   resources {     project.runtimeClasspathElements.each {       def path = it.find(".*?([\w\.-]*\.jar)") { it[1] }       !path?:'resource-root'(path:path)     }   } } println sw        </source>    </configuration></plugin>

需要注意的几件事:

  1. 该脚本会将XML吐出到stdout,但是您显然可以很容易地将其写入文件或其他文件。
  2. runtimeClasspathElements
    jar 的包含绝对路径,这就是为什么我用正则表达式解析它的原因。您可以调整正则表达式以包含更多路径,或者,如果您需要的不仅仅是jar文件名,则只需在字符串前添加一个字符串即可。

我已经在github上发布了一个工作示例(这只是一个POM),其中将上述插件配置绑定到了初始化构建阶段。如果您有git,则可以使用以下方法自己克隆并运行它:

git clone git://github.com/zzantozz/testbed tmpcd tmpmvn -q initialize -pl stackoverflow/7755255-gmaven-to-build-xml-from-classpath

在示例项目中,我添加了jdom 1.0和dom4j 1.6.1作为依赖项,这是它创建的输出:

<module xmlns='urn:jboss:module:1.0' name='ats.platform'>  <resources>    <resource-root path='jdom-1.0.jar' />    <resource-root path='dom4j-1.6.1.jar' />    <resource-root path='xml-apis-1.0.b2.jar' />    <resource-root path='aspectjrt-1.6.11.jar' />  </resources></module>

注意:我不是一个熟练的专家,所以可能有一个更加熟练的方法,但是即使如此,您也可以看到它是多么容易。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/454264.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号