Bonjour,

Je travaille actuellement sur un projet modulaire et j'ai un problème avec mes fichiers de build. Ils sont relativement longs, mais surtout ils sont presque tous les mêmes :

Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<?xml version="1.0" encoding="UTF-8"?>
<project name="JTheque Metrics Module" basedir="." default="server-build">
    <property name="project.name" value="JTheque Metrics Module"/>
    <property name="project.jar" value="JTheque-Metrics-Module.jar" />
    <property name="project.type" value="modules"/>
    <property name="project.subdir" value="modules"/>
    <property name="project.dir" value="N:\Programmation\WorkDirectory\JTheque Metrics\current" />
 
    <property name="jtheque.workspace" value="N:/Programmation/Workspaces/Intellij Idea Workspace/JTheque"/>
    <property name="jtheque.out" value="${jtheque.workspace}/out/production"/>
    <property name="project.root.dir" value="${jtheque.workspace}/${project.name}"/>
    <property name="project.src.dir" value="${project.root.dir}/src"/>
    <property name="project.bin.dir" value="${jtheque.out}/${project.name}"/>
    <property name="output.jar.dir" value="${project.dir}/${project.subdir}"/>
 
    <property name="server" value="M:\Server\"/>
    <property name="server.output.bin.dir" value="${server}/bin"/>
    <property name="server.output.build.dir" value="${server}/builds/${project.type}/${project.name}/"/>
 
    <path id="master-classpath">
        <path id="libs" location="${project.dir}">
            <fileset dir="${project.dir}/lib/">
                <include name="**/*.jar"/>
                <include name="*.jar"/>
            </fileset>
        </path>
        <path id="modules" location="${project.dir}">
            <fileset dir="${project.dir}/modules/">
                <include name="*.jar"/>
            </fileset>
        </path>
        <path refid="libs"/>
        <path refid="modules"/>
        <pathelement path="${java.class.path}"/>
        <pathelement location="${project.dir}\JTheque-Core.jar"/>
    </path>
 
    <!-- Clean build directory -->
    <target name="clean">
        <delete dir="${project.bin.dir}" includeEmptyDirs="true"/>
    </target>
 
    <!-- Compile java files -->
    <target name="compile" depends="clean">
        <mkdir dir="${project.bin.dir}"/>
        <javac srcdir="${project.src.dir}" destdir="${project.bin.dir}"
               fork="true" source="1.6" target="1.6">
            <classpath refid="master-classpath"/>
        </javac>
    </target>
 
    <!-- Copy ressources !-->
    <target name="copyRessources" depends="compile">
        <copydir src="${project.src.dir}" dest="${project.bin.dir}">
            <exclude name="**/*.java"/>
            <exclude name="**/package.html"/>
        </copydir>
    </target>
 
    <!-- Generate Javadoc -->
    <target name="generateDoc" depends="copyRessources">
        <javadoc sourcepath="${project.src.dir}" destdir="${server.output.build.dir}/doc" access="private" bootclasspathref="master-classpath" classpathref="master-classpath" />
        <zip destfile="${server.output.build.dir}/${project.name}_doc.zip" basedir="${server.output.build.dir}/doc" />
        <delete  dir="${server.output.build.dir}/doc" />
    </target>
 
    <!-- Generate src archive -->
    <target name="generateSrc" depends="generateDoc">
        <zip destfile="${server.output.build.dir}/${project.name}_src.zip" basedir="${project.src.dir}" />
    </target>
 
    <!-- Build JAR files-->
    <target name="server-build" depends="generateSrc">
        <delete file="${server.output.build.dir}/${project.jar}"/>
        <jar destfile="${server.output.build.dir}/${project.jar}"
             basedir="${project.bin.dir}" manifest="MANIFEST.MF"/>
    </target>
 
    <!-- Simply Build JAR files-->
    <target name="simple-buildJar">
        <delete file="${output.jar.dir}/${project.jar}"/>
        <jar destfile="${output.jar.dir}/${project.jar}"
             basedir="${project.bin.dir}" manifest="MANIFEST.MF"/>
    </target>
</project>

La seule chose qui change dans un de mes nombreux fichiers de build ce sont les property au début du fichier. Est-ce qu'il y a un moment de supprimmer cette redondance ? Au moyen d'un fichier qu'on pourrait insérer ou quelque chose du genre ?

merci