我有5個套餐如何構建Maven項目包明智?
com/test1
com/test2
com/test3
com/test4
com/test4
我希望每次只建一個或拖包的任何戰爭。我怎樣才能做到這一點?
我有5個套餐如何構建Maven項目包明智?
com/test1
com/test2
com/test3
com/test4
com/test4
我希望每次只建一個或拖包的任何戰爭。我怎樣才能做到這一點?
嘗試此罐:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>${maven-jar-plugin.version}</version>
<executions>
<execution>
<id>default-jar</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<excludes>
<exclude>your_package_folder_here/**</exclude>
</excludes>
</configuration>
</execution>
</executions>
</plugin>
而本作的戰爭:
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<packagingExcludes>WEB-INF/classes/your_package_folder_here/**</packagingExcludes>
</configuration>
</plugin>
別忘了要排除的包文件夾的完整路徑的末尾使用/**
/**
用於文件夾/*
用於文件。你的jar文件將被放置在沒有包的目標中。規則適用於這兩種情況。
如果要排除多個包,然後我的第一個建議是,首先讀取插件API:
packagingExcludes java.lang.String中2.1-α-2 虛假真正的 逗號分開的令牌列表,以便在 包裝之前從WAR中排除。該選項可用於實施瘦身WAR使用 的情況。請注意,您可以使用Java正則表達式引擎 使用表達式%regex []包含和排除特定模式。提示:閱讀關於(?!模式)。
然後最後你能拿這個例子:
(...)
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<packagingExcludes>WEB-INF/classes/com/steelzack/b2b2bwebapp/excludefolder/**,WEB-INF/classes/com/steelzack/b2b2bwebapp/excludefolder2/**</packagingExcludes>
</configuration>
</plugin>
(...)
這是行不通的。 –
發生了什麼事?小心使用排除節點。他們應該是你的文件夾,如:'com/package/something/**'。同樣在目標中,您將在類文件夾中看到該包,但不在jar中。如果你檢查內容,那麼你的包不應該在那裏。示例:'
我已經在示例項目中再次嘗試過,它確實有效!我已經使用過很多次了,它一直爲我工作。 –
您已經嘗試了什麼? – SparkAndShine
你說的是戰爭?你爲什麼想建立包裝明智?那是什麼目的? – khmarbaise
在一個項目中,我有所有的代碼,我不會建立所有的代碼,它增加了戰爭的規模。甚至一些軟件包代碼沒有用。例如我有3個用戶,我想發送每個包構建給每個用戶。我不會爲每個用戶創建單獨的項目,有時第4用戶將需要所有3包構建 –