我想为我的项目生成一个源 jar 文件,所以我包含了 maven-source-plugin。但是,我还使用资源过滤插件在我的项目的属性文件中设置版本号。当我生成最终的 jar 文件时,属性文件已被过滤并设置了版本。但是在sources 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。
所以现在有两个具有相同包路径和名称的属性文件,一个存在于编译的 jar 中,一个存在于源 jar 中。
当我尝试读取此文件时,它似乎从源 jar 中选择了属性文件,该文件尚未被过滤。