java创建项目的不同“分布”
我正在从Ant转换(或至少尝试)到Maven。 我正在构建一个复杂的项目,生成一个WAR文件,扩展到一个文件夹中
然后,在Ant中,我创建了10个不同的“发行版”,这意味着我将一些属性文件、CSS和HTML文件从“config/”目录复制到文件夹中,创建一个,并对下一个“config/”文件夹重复该步骤
最后,我为每个客户定制了10个ZIP文件和资源
and代码看起来是这样的(可能不是最好的ant代码,但工作得很完美):
<!-- Distributionen -->
<target name="distribution-customer1" depends="jar-with-dependencies">
<property name="dirname" value="customer1" />
<antcall target="distribution">
<param name="dirname" value="${dirname}" />
</antcall>
</target>
<target name="distribution-customer2" depends="jar-with-dependencies">
<property name="dirname" value="customer2" />
<antcall target="distribution">
<param name="dirname" value="${dirname}" />
</antcall>
</target>
<target name="distribution-customer3">
<property name="dirname" value="customer3" />
<antcall target="distribution">
<param name="dirname" value="${dirname}" />
</antcall>
<!-- Startdateien mit Port 8080 statt Port 80 -->
<copy todir="${root.dir}/distribution/${dirname}/" overwrite="yes">
<fileset dir="${root.dir}/configs/${dirname}/" includes="myproject_starten**" />
</copy>
<!-- Nachdem wir Dateien geändert haben, nochmals WAR und ZIP generieren -->
<antcall target="create_war_and_zip">
<param name="dirname" value="${dirname}" />
</antcall>
</target>
<!-- /Distributionen -->
<!-- Über Antcall aufrufen, nicht direkt! -->
<target name="distribution" depends="jar-with-dependencies">
<!-- Altes Verzeichnis löschen -->
<delete dir="${root.dir}/distribution/${dirname}/" />
<!-- Neu anlegen -->
<mkdir dir="${root.dir}/distribution/${dirname}/" />
<!-- Alles vom Template rüber kopieren -->
<copy todir="${root.dir}/distribution/${dirname}/" overwrite="yes">
<fileset dir="${root.dir}/distribution/myproject_template/">
</fileset>
</copy>
<!-- Service.ini mit der Version aus dem individuellen Config-Verzeichnis
überschreiben -->
<copy todir="${root.dir}/distribution/${dirname}" overwrite="yes">
<fileset dir="${root.dir}/configs/${dirname}/">
<include name="*.ini" />
</fileset>
</copy>
<!-- Alte Propertydateien löschen -->
<copy todir="${root.dir}/distribution/${dirname}/myproject/WEB-INF/classes" overwrite="yes">
<fileset dir="${root.dir}/configs/${dirname}/">
<include name="*.properties" />
</fileset>
</copy>
<!-- ggf. Log4J Config überschreiben -->
<copy todir="${root.dir}/distribution/${dirname}/myproject/WEB-INF/classes" overwrite="yes">
<fileset dir="${root.dir}/configs/${dirname}/">
<include name="*.xml" />
</fileset>
</copy>
<!-- Custom CSS kopieren -->
<copy todir="${root.dir}/distribution/${dirname}/myproject/assets/css" overwrite="yes">
<fileset dir="${root.dir}/configs/${dirname}/assets/css/">
<include name="*.css" />
</fileset>
</copy>
<!-- Custom Images kopieren -->
<copy todir="${root.dir}/distribution/${dirname}/myproject/assets/images" overwrite="yes">
<fileset dir="${root.dir}/configs/${dirname}/assets/images/">
<include name="*.png" />
</fileset>
</copy>
<!-- Daten kopieren (Falls vorhanden, für Demo)-->
<copy todir="${root.dir}/distribution/${dirname}/data" overwrite="yes" failonerror="false">
<fileset dir="${root.dir}/configs/${dirname}/data/"></fileset>
</copy>
<copy todir="${root.dir}/distribution/${dirname}/myproject/bilder" overwrite="yes" failonerror="false">
<fileset dir="${root.dir}/configs/${dirname}/bilder/"></fileset>
</copy>
<delete file="${root.dir}/distribution/${dirname}/readme.internal.md" />
<antcall target="create_war_and_zip">
<param name="dirname" value="${dirname}" />
</antcall>
</target>
<target name="copy-to-distribution" depends="jar-with-dependencies">
<delete dir="${root.dir}/distribution/myproject_template/myproject/" />
<mkdir dir="${root.dir}/distribution/myproject_template/myproject/" />
<mkdir dir="${root.dir}/distribution/myproject_template/myproject/bilder" />
<mkdir
dir="${root.dir}/distribution/myproject_template/myproject/bilder/details" />
<mkdir
dir="${root.dir}/distribution/myproject_template/myproject/bilder/originals" />
<mkdir
dir="${root.dir}/distribution/myproject_template/myproject/bilder/thumbnails" />
<copy todir="${root.dir}/distribution/myproject_template/myproject/">
<fileset
dir="${build.dir}/dist/${ant.project.name}-with-dependencies-jar/" />
</copy>
</target>
我怎么能对maven做这样的事? 我应该使用个人资料吗? 我应该用maven来完成这个任务吗
欢迎任何帮助
谢谢,, 舒贝
# 1 楼答案
您需要使用war-overlays以下是一个示例:
父pom,用于将所有子项目放在一起:
这是一场基地战争,对于任何普通的东西:
为了改变基地战争中的任何事情,我们进行了许多分销战。这个项目中的任何东西都将取代基地战争中的任何东西。你可以一无所获,获得完整的基础战或插入单个文件
工作示例here