【发布时间】:2016-07-12 08:49:29
【问题描述】:
我有一个 deploy.ant 文件,其中完成了整个构建过程,包括复制文件、执行 protobuf 编译器等等。现在我要切换到 maven,我有应该执行这些任务的 pom.xml 文件。除了剩下的 deploy.ant 脚本之外,我几乎完成了所有工作。
此脚本具有清理、准备、构建和部署目标。从这里我需要的是清洁、准备和只是构建目标的一部分,因为其他部分由其他 pom.xmls 完成。
所以在我的deploy.ant 中,我有以下代码 sn-ps:
<!-- just copying sh and ant files to release folder. -->
<target name="clean">
<delete dir="${install.dir}" />
</target>
<target name="prepare">
<mkdir dir="${install.dir}" />
<copy file="${template.dir}/run.all.ant" todir="${install.dir}" />
<copy file="${template.dir}/run.all.sh" todir="${install.dir}" />
<copy file="${template.dir}/kill.all.sh" todir="${install.dir}" />
<copy file="${template.dir}/packLogs.sh" todir="${install.dir}" />
</target>
.
.
.
.
<!-- copy template files and configurations -->
<if>
<available file="${component.project.dir}/conf/config.properties" />
<then>
<copy file="${component.project.dir}/conf/config.properties" todir="${component.release.dir}/conf" />
</then>
<else>
<echo message="${component.project.dir} does not provide a bundle config - using default from release bundle" />
<copy file="${template.dir}/config.properties" todir="${component.release.dir}/conf" />
</else>
</if>
<if>
<available file="${component.project.dir}/plans" type="dir" />
<then>
<copy todir="${component.release.dir}/plans">
<fileset dir="${component.project.dir}/plans" includes="**" />
</copy>
</then>
</if>
.
.
<copy file="../group1/someProject.mw/conf/log4j.xml" todir="${component.release.dir}/conf" />
<copy file="${template.dir}/run.ant" todir="${component.release.dir}" />
<copy file="${template.dir}/run.sh" todir="${component.release.dir}" />
这是我想出的 maven 部分:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<echo>Copying .sh and .ant files to release folder</echo>
<basename file="${component.project.dir}" property="component.name" />
<property name="component.release.dir" value="${install.dir}/${component.name}" />
<delete dir="${install.dir}" />
<mkdir dir="${install.dir}" />
<copy file="${template.dir}/run.all.ant" todir="${install.dir}" />
<copy file="${template.dir}/run.all.sh" todir="${install.dir}" />
<copy file="${template.dir}/kill.all.sh" todir="${install.dir}" />
<copy file="${template.dir}/packLogs.sh" todir="${install.dir}" />
<copy file="../group1/someProject.mw/conf/log4j.xml" todir="${component.release.dir}/conf" />
<copy file="${template.dir}/run.ant" todir="${component.release.dir}" />
<copy file="${template.dir}/run.sh" todir="${component.release.dir}" />
</tasks>
</configuration>
</execution>
</executions>
</plugin>
但是正如你所看到的,我对所有这些路径以及如何将它们集成到 Maven 中感到很困惑。我怀疑我分享的代码是正确的,因为 maven 不知道 "${install.dir}" 是什么。
所以我的问题是,如何使用这个插件在 maven 中集成这些任务?是否只是将 ant sn-ps 复制粘贴到插件的标签中?如果是这样,它将如何理解蚂蚁属性的含义?路径?
【问题讨论】:
标签: maven ant maven-antrun-plugin