私たちのプロジェクトは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.xml
とmappers/our-mapper.xml
ファイルが 内に含まれている 内にまだ含まれているwar
ことassembly.tar.gz
です。
アセンブリの外側.xml
の war にファイルが含まれている構成を保持することは可能ですが、アセンブリされたアセンブリの内側にあるwar で.tar.gz
これらの同じファイルを除外して、クラスパスに 2 回表示されないようにすることはできますか?
助けてくれてありがとう。