在我們的項目假設我們有以下的包可以選擇指定java包的maven程序集插件嗎?
org.xxx.dao,org.xxx.service,org.xxx.service.impl
所有的包都在療法源文件夾SRC/main/java
我可以將程序集軟件包分成獨立的jar,(xxx-dao.jar,xxx-service.jar,xxx-service-impl.jar)嗎?
在我們的項目假設我們有以下的包可以選擇指定java包的maven程序集插件嗎?
org.xxx.dao,org.xxx.service,org.xxx.service.impl
所有的包都在療法源文件夾SRC/main/java
我可以將程序集軟件包分成獨立的jar,(xxx-dao.jar,xxx-service.jar,xxx-service-impl.jar)嗎?
您可以使用標準的maven-jar-plugin
此:
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>dao</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<archive>
<index>true</index>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
</archive>
<classifier>dao</classifier>
<includes>
<include>org/xxx/dao/**/*</include>
</includes>
</configuration>
</execution>
<execution>
<id>service</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<archive>
<index>true</index>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
</archive>
<classifier>service</classifier>
<includes>
<include>org/xxx/service/**/*</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
這給你一個JAR的一切,然後幾個JAR只與選擇的內容,你可以在你的Maven的POM分類選擇。
如果你想省略默認的JAR(包含一切),那麼你更換一個<id>
與<id>default-jar</id>
,並添加一個<excludes>
元素,因爲默認的JAR包括一切,所以你必須擺脫的東西,你不想。
它的工作原理,非常感謝 – jilen
maven-assembly插件不適用於此類任務,請參見its features。如果你有源代碼,那麼我建議將它們複製到你的項目模塊中。
但是,如果你想用maven-assembly插件來做,那麼我認爲你可以通過創建單獨的descriptor components並定義哪些文件包含在哪個程序集中來實現。您可以定義源文件,將其包含在sources定義下的includes
標記中。
爲什麼不創建多個模塊而不是將它們寫入單個模塊?或者如果你不想這樣做,你爲什麼要單獨的罐子? – melihcelik
這是因爲舊項目不是由我創建的。我只想導出部分源代碼,然後將jar放入另一個系統中運行。 – jilen
我已經添加了一個答案,你能驗證它的工作原理嗎?如果它不起作用,請讓我知道,以便我可以刪除答案。 – melihcelik