gpt4 book ai didi

java - 将ant脚本迁移到Maven3

转载 作者:行者123 更新时间:2023-12-01 23:15:48 24 4
gpt4 key购买 nike

我正在将 Maven 1 项目迁移到 Maven 3。这项工作几乎已经完成,但缺少一个任务,我需要的是从 pom 文件中获取所有依赖项名称并将它们写入配置文件作为一个字符串,工作的完成方式如下在 maven.xml 中,检查最后 5 行,将名称写入名为wrapper.conf的文件

如何使用 Maven3 实现此目的?是否有一个 Maven 插件可供我使用,或者我需要在我的 pom.xml 中使用 ant 脚本?

<goal name="service">
<mkdir dir="${maven.build.dir}/grid" />
<ant:copy todir="${maven.build.dir}/grid">
<fileset dir="resources/javaservicewrapper" />
</ant:copy>


<j:forEach var="lib" items="${pom.artifacts}">
<j:set var="dep" value="${lib.dependency}"/>
<j:if test="${dep.getProperty('service.bundle')=='true'}">
<ant:copy failonerror="true" todir="${maven.build.dir}/grid/lib">
<fileset dir="${maven.repo.local}/${dep.groupId}/jars">
<include name="${dep.artifactId}-${dep.version}.${dep.type}"/>
<j:set var="SERVCP" value="../lib/${dep.artifactId}-${dep.version}.${dep.type}:${SERVCP}" />
</fileset>
</ant:copy>
</j:if>
</j:forEach>

<attainGoal name="jar" />
<ant:copy file="target/${maven.final.name}.jar" tofile="${maven.build.dir}/grid/lib/grid.jar" />

<j:set var="SERVCP" value="${SERVCP}../lib/gridcache.jar" />

<ant:copy todir="${maven.build.dir}/gridcache/conf" file="resources/javaservicewrapper/conf/wrapper.conf" overwrite="true">
<filterset begintoken="@" endtoken="@">
<filter token="service.classpath" value="${SERVCP}"/>
</filterset>
</ant:copy>

</goal>

编辑:使用 build-classpath 的解决方案效果很好,但我遇到了其他特定于使用 Javaservicewrapper 的问题。所以我发现的最佳解决方案是通过 appassembler-maven-plugin 创建整个脚本/配置文件,并让 maven-assemble 插件将其复制到 conf 文件夹

最佳答案

如果您需要创建 JSW (wrapper.conf),最简单的解决方案是使用 appassembler-maven-plugin可以创建这样的文件。

关于java - 将ant脚本迁移到Maven3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21230819/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com