我想爲我的項目生成一個源代碼jar文件,所以我已經包含了maven-source-plugin。但是,我也使用資源過濾插件爲我的項目在屬性文件中設置版本號。當我生成最終的jar文件時,屬性文件已被過濾並且版本被設置。然而在源碼罐中,仍然有未過濾的屬性。我希望源插件也可以調用資源過濾。我怎樣才能做到這一點?從maven源生成過濾的資源: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中挑選屬性文件。
源jar包含您的項目的來源沒有篩選,沒有編譯等。除了該設置''和''沒有意義,因爲這些是默認設置。 (約定優於配置)。 –
khmarbaise
@khmarbaise感謝您指出我的POM中的重複配置信息,我一定會刪除它。我沒有添加額外的信息,爲什麼我想要過濾源代碼資源。我可以理解,這在技術上是不正確的,所以我添加了我遇到的實際問題。 –
如何過濾生成資源階段中的屬性? –