如果您可以創建合理數量的此類服務文件,則可以將它們存儲在項目中的單獨路徑中。例如:
然後你可以選擇包括與pom.xml
像這樣的(一個例子是pom.xml
是強大的,但詳細)文件:
<properties>
<service.declaration.dir>src/serviceManifests</service.declaration.dir>
<service.files.path>META-INF/services</service.files.path>
</properties>
<profiles>
<profile>
<id>foo</id>
<build>
<resources>
<resource>
<directory>${service.declaration.dir}</directory>
<includes>
<include>${service.files.path}/foo</include>
</includes>
</resource>
</resources>
</build>
</profile>
<profile>
<id>bar</id>
<build>
<resources>
<resource>
<directory>${service.declaration.dir}</directory>
<includes>
<include>${service.files.path}/bar</include>
</includes>
</resource>
</resources>
</build>
</profile>
</profiles>
要包含兩個文件你會然後運行:
mvn clean package -P foo -P bar
要僅包含foo
文件,您將運行:
mvn clean package -P foo
這是相當不清楚的。在結構/內容方面你能展示你現在擁有的東西嗎?你期望的結果是什麼? – Tunaki
如果您查看指向Ant頁面的鏈接,請在「服務」部分中,您會看到它允許您通過採用兩個參數來創建服務文件:1.「type」 - 服務的名稱文件。 2.「提供者」 - 提供者的類名稱。所以如果我指定了1.「java.my.serviceFile」2.「com.test.mytest」,我最終會得到一個名爲「java.my.serviceFile」的文件,它將包含文本「com.test.mytest」 。我想對Maven也這樣做。 – BlueBucket7
好的,所以你想動態創建服務文件,給定一個內部名稱分類名稱和實現分類名稱。我不認爲有這種內置的方式;你可能不得不通過Maven Antrun插件調用Ant任務。 – Tunaki