Генерация отфильтрованных ресурсов из источников maven: выполнение jar
Я хотел бы создать JAR-файл для своего проекта, поэтому я включил плагин maven-source-plugin. Тем не менее, я также использую плагин фильтрации ресурсов, чтобы установить номер версии в файле свойств для моего проекта. Когда я создаю окончательный файл JAR, файл свойств был отфильтрован и версия установлена. Однако в источниках баночка все еще имеет нефильтрованное свойство. Я хотел бы, чтобы плагин источников также вызывал фильтрацию ресурсов. Как я могу это сделать?
Вот (часть) моего pom.xml
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<sourceDirectory>src/main/java</sourceDirectory>
<testSourceDirectory>src/test/java</testSourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.3</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.7</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
и вот файл свойств, который я хочу отфильтровать в
version = ${project.version}
РЕДАКТИРОВАТЬ
Для пояснения, корень моей проблемы в том, что у меня есть другой проект, который представляет собой проект GWT, созданный с использованием этой библиотеки. Частью требований проекта GWT является то, что исходный код также должен быть доступен для всего, что будет скомпилировано в клиентский javascript. Следовательно, этот проект содержит как скомпилированный jar, так и jar с исходниками в classpath.
Таким образом, теперь есть два файла свойств с одинаковым путем и именем пакета, один существует в скомпилированном jar, а другой в исходном jar.
Когда я пытаюсь прочитать этот файл, кажется, что он выбирает файл свойств из jar-кода источника, который не был отфильтрован.
1 ответ
Обычно вы бы использовали maven-source-plugin
за это. Тем не менее, я вижу в его документации, что вы не можете удалить src/main/resources из его обработки, одновременно добавляя target/classes
к его циклу обработки (что вам нужно сделать, чтобы выполнить задачу)
Поэтому я думаю, что вам лучше всего использовать конфигурацию maven-assembly-plugin.