У меня есть jar say xyz.jar, который имеет структуру как src/main/java/resources. Теперь эта папка ресурсов содержит 3 подпапки:/fileone.txt b/filetwo.txt и c/filethree.txt. Я использую эту банку в качестве зависимости для создания трех трех разных военных файлов. В каждом из этих военных файлов я использую только один из трех файлов .i.e либо fileone.txt, либо filetwo.txt или filethree.txt. Итак, в pom.xml для создания любого из трех военных файлов есть ли способ, по которому я могу настроить исключение оставшихся двух файлов? Например, если я строю firstWar.war, я хочу включить только файлe.txt и исключить два других. Я считаю, что packageExcludes в maven war plugin можно использовать здесь, но я не уверен, как это сделать? Спасибо.исключая определенные файлы из банки, которая является зависимостью в войне в maven3
ответ
- Решение 1:
Вы полагаете, у вас есть баночка файл, который содержит ресурсы. Я бы предложил разместить файлы/ресурсы в военный модуль и произвести три разных войны из одной сборки. Это можно решить, используя плагин maven-assembly-plugin. Вы иметь следующую структуру:
.
|-- pom.xml
`-- src
|-- main
| |-- java
| |-- resources
| |-- environment
| | |-- test
| | | `-- database.properties
| | |-- qa
| | | `-- database.properties
| | `-- production
| | `-- database.properties
| `-- webapp
Вам нужно сборочный-дескриптор и, конечно, файл POM так:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>test</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>${project.basedir}/src/main/assembly/test.xml</descriptor>
</descriptors>
</configuration>
</execution>
<execution>
<id>qa</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>${project.basedir}/src/main/assembly/qa.xml</descriptor>
</descriptors>
</configuration>
</execution>
<execution>
<id>production</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>${project.basedir}/src/main/assembly/production.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
Файл дескриптора выглядит следующим образом:
<assembly...
<id>test</id>
<formats>
<format>war</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
<dependencySet>
<unpack>true</unpack>
<useProjectArtifact>true</useProjectArtifact>
</dependencySet>
</dependencySets>
<fileSets>
<fileSet>
<outputDirectory>WEB-INF</outputDirectory>
<directory>${basedir}/src/main/environment/test/</directory>
<includes>
<include>**</include>
</includes>
</fileSet>
</fileSets>
</assembly>
Какие вам нужно для каждого ресурса (в вашем случае три раза). Их можно назвать как ваши среды, такие как test, qa, production (не забудьте дать им соответствующий идентификатор). Они должны быть помещены в папку src/main/assembly. Или в зависимости от вашего envrionment (file1, file2, file3, но я думаю, что в действительности существуют лучшие имена.).
- Решение 2:
Вы будете делать ту же установку для файла банки, который вы используете, и создать три различные файл банка с соответствующим классификатором, который представляет собой ресурс, который вы любите. Но потом вы должны изменить сборку войны, чтобы создать три разных файла войны для каждого другого ресурса. О настройке i wrote a blog entry.
- 1. получить местоположение банки, которая является зависимостью в maven
- 2. Нежелательные банки в моей войне
- 3. subversion, исключая определенные файлы
- 4. tar/gzip исключая определенные файлы
- 5. Исключая .java из банки, присутствующей в WAR
- 6. Исключая определенные файлы из поиска Visual Studio
- 7. Исключая определенные файлы из зависимостей gradle download
- 8. Исключая определенные тесты из загрузки в phpunit
- 9. rsync --exclude не исключая определенные файлы
- 10. исключая определенные файлы из поиска в массиве имен
- 11. Исключая определенные файлы при использовании DirectoryInfo.GetFiles()
- 12. Исключая определенные файлы, пока «git pull»
- 13. Исключая определенные классы в зависимой баночке - GRADLE
- 14. Как создать ветку в subversion, исключая определенные файлы?
- 15. Исключая файлы из композиционных пакетов
- 16. Извлечь файлы из zip-архива, исключая определенные имена файлов
- 17. Экспорт проекта Maven3 из одного экземпляра eclipse в другой
- 18. Получить банки, определенные в pom.xml
- 19. Как создать выпуск, исключая определенные файлы в Git
- 20. Исключая файлы из Sonarqube
- 21. Исключая определенные каталоги из ignore-glob
- 22. Как удалить все файлы, но исключая определенные файлы (пакетный файл)
- 23. Как бороться с зависимостью от яровой банки
- 24. Powershell - добавить папку/файлы в zip, исключая определенные папки
- 25. Eloquent - Исключая определенные строки
- 26. Исключая транзитивной зависимостью более чем один уровень
- 27. Исключая файлы при проверке в репозитории Subversion
- 28. Исключая определенные перестановки Regex
- 29. Как импортировать определенные классы из целой банки?
- 30. строка поиска, исключая определенные подстроки
спасибо khmarbaise, этот файл дескриптора должен быть для каждого из трех файлов? и где они должны быть размещены. Также как должны быть названы эти файлы дескрипторов? файлы присутствуют как resouces/folder1/file1 resources/folder2/file2 и resources/folder3/file3 – pranay
Усовершенствованный ответ соответствующим образом. – khmarbaise
еще раз спасибо .. но я верю, что это сработает, если я соберу все 3 военных файла? ... что, если я построю каждый отдельно? – pranay