Maven: включите файлы в META-INF JAR
Я использую Maven для создания проекта Java, и у меня есть пара файлов, CHANGELOG
а также LICENSE
, что я хотел бы скопировать в META-INF
каталог внутри файла JAR.
Пока что у меня работает следующее:
<build>
<resources>
<resource>
<directory>${project.basedir}</directory>
<includes>
<include>CHANGELOG</include>
<include>LICENSE</include>
</includes>
<targetPath>META-INF</targetPath>
</resource>
</resources>
<plugins>
...
но это также копирует эти два файла в classes/META-INF
каталог при компиляции.
Поэтому я хотел бы, чтобы файлы были включены в файл JAR, но больше нигде. Есть ли способ сделать это?
4 ответа
Вам не нужно указывать какую-либо пользовательскую конфигурацию maven для удовлетворения ваших потребностей.
В src/main/resources
создавая просто META-INF
папку и разместите ваши файлы здесь.
Таким образом, вы можете найти их в META-INF
папка встроенного JAR.
Кроме того, вы должны удалить <resource>
элемент, который вы добавили в pom.xml
так как он меняет папку ресурсов по умолчанию на корень проекта, а не по умолчанию src/main/resources
,
Если вы хотите добавить файлы и каталог в папку META-INF, используйте этот код в своем pom.xml
<build>
<finalName>CustomJsfComponents</finalName>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**.xml</include>
<include>**resources/**</include>
</includes>
<targetPath>META-INF</targetPath>
</resource>
</resources>
</build>
Измените свой pom, добавив webResources
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
<webResources>
<resource>
<directory>target/classes/META-INF/</directory>
<includes>
<include>*.*</include>
</includes>
<targetPath>META-INF/</targetPath>
</resource>
</webResources>
</configuration>
</plugin>
Рассмотрим файл config.properties, который можно найти в
src / main / resources / META-INF / config.properties
Если вы хотите добавить свои файлы при созданииWAR
, вы можете создать свой собственныйMETA-INF
папка вwebapp
каталог.
src/main/webapp/META-INF