1

私たちのプロジェクトはWARをパッケージ化するように設定されており、これはローカル開発に最適です:

<plugin>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.3</version>
    <executions>
        <execution>
            <id>package-war</id>
            <phase>package</phase>
            <goals>
                <goal>war</goal>
            </goals>
        ...

この戦争に含まれているのは、アプリケーションで使用されるマッパー ファイルとログバック ファイルsrc/main/resources/logback.xmlです/src/main/resources/mappers/our-mapper.xml

戦争を構築する際に、これらのファイルは、私たちが期待し、望んでいる場所、下our.war/WEB-INF/classes/logback.xml、および下に送信されます。our.war/WEB-INF/classes/mappers/our-mapper.xml

展開のためにアセンブリをパッケージ化してハンドオフするときは、これらのファイルを戦争から分離する必要があります。これは、アセンブリ記述子を使用して行います。

<assembly>
    <formats>
        <format>tar.gz</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>
    <files>
        <file>
            <source>target/${build.finalName}.war</source>
            <outputDirectory>${tomcat-instance}/webapps</outputDirectory>
        </file>
        <file>
            <source>src/main/resources/logback.xml</source>
            <outputDirectory>${tomcat-instance}/resources/</outputDirectory>
        </file>
    </files>
    <fileSets>
        <fileSet>
            <directory>src/main/resources/mapper</directory>
            <outputDirectory>${tomcat-instance}/resources/mapper/</outputDirectory>
            <includes>
                <include>**/*</include>
            </includes>
        </fileSet>
    </fileSets>
</assembly>

Maven で次のように構成します。

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <configuration>
        <descriptors>
            <descriptor>src/main/resources/our-assembly.xml</descriptor>
        </descriptors>
    </configuration>
    <executions>
        <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
        </execution>
    </executions>
</plugin>

これによりアセンブリが構築されますが、私の懸念はlogback.xmlmappers/our-mapper.xmlファイルが 内に含まれている 内にまだ含まれているwarことassembly.tar.gzです。

アセンブリの外側.xmlの war にファイルが含まれている構成を保持することは可能ですが、アセンブリされたアセンブリの内側にあるwar で.tar.gzこれらの同じファイルを除外して、クラスパスに 2 回表示されないようにすることはできますか?

助けてくれてありがとう。

4

1 に答える 1