是否有能力構建maven工件,其中只包含資源但不包含任何源,並且可以被其他項目重用?maven可重用資源項目可能嗎?
動機如下。我有一個只包含html/css/javascript代碼的庫。這個圖書館必須作爲資源打包到戰爭項目中。至於現在我用單個pom構建資源的網絡存檔。但我能夠將html/css/javascript代碼分離爲新的工件,並在幾個戰爭項目中重用它?
是否有能力構建maven工件,其中只包含資源但不包含任何源,並且可以被其他項目重用?maven可重用資源項目可能嗎?
動機如下。我有一個只包含html/css/javascript代碼的庫。這個圖書館必須作爲資源打包到戰爭項目中。至於現在我用單個pom構建資源的網絡存檔。但我能夠將html/css/javascript代碼分離爲新的工件,並在幾個戰爭項目中重用它?
使用Maven Overlays。有關更多示例,請參見Manipulating WAR Overlays。
您可以使用Maven assembly plugin。
我究竟能做到這一點? – 2010-02-25 20:29:35
@Volodymyr請檢查我鏈接的用戶指南,它也包含示例。如果你有一個更具體的問題,並告訴我們有關你的項目的更多細節,我們可以給你更具體的答案:-) – 2010-02-25 20:37:03
據我瞭解分配組件它是最終的東西,不可重複使用。不是嗎?如果是這樣,他們不適合做我需要的東西。通過maven-assembly-plugin,我可以爲資源庫創建分發程序集。在我的戰爭中,我甚至可以使用這個神器作爲依賴。在這種情況下,我將獲取target \ war-artifact-1.0 \ WEB-INF \ lib \ resource-artifact-1.0.jar而不是解壓縮到目標\ war-artifact-1.0 \文件夾中的發佈程序集的內容。在提供的指南中,我沒有找到任何方式將分發程序集提取到Web檔案的根目錄中。 – 2010-02-25 22:19:23
我不認爲maven會阻止你將一些資源震撼到一起,並將其作爲Web項目中的依賴項添加。
但是,您需要引用資源的方式會有點奇怪。 我不習慣將CSS樣式表作爲Java資源加載到WEB-INF/lib中的jar文件中。
我想將它們作爲正常的Web資源,相對於WAR文件的根,而不是通過類加載器。
是的,我不需要資源被震動。我需要它們存在於我的Web文件夾和Web存檔中,以靜態方式引用它們,而不是通過類加載器。 – 2010-02-25 20:36:53
這是一個非常簡單的事情進行測試:
$ ls -R
.:
pom.xml src
./src:
main
./src/main:
resources
./src/main/resources:
README.txt content-is-here.txt
$ mvn package
... Maven doing it's thing...
$ unzip -l target/test-1.0-SNAPSHOT.jar
Archive: target/test-1.0-SNAPSHOT.jar
Length Date Time Name
--------- ---------- ----- ----
0 02-25-2010 16:18 META-INF/
123 02-25-2010 16:18 META-INF/MANIFEST.MF
10 02-25-2010 16:18 content-is-here.txt
0 02-25-2010 16:18 README.txt
0 02-25-2010 16:18 META-INF/maven/
0 02-25-2010 16:18 META-INF/maven/group/
0 02-25-2010 16:18 META-INF/maven/group/test/
626 02-25-2010 16:15 META-INF/maven/group/test/pom.xml
106 02-25-2010 16:18 META-INF/maven/group/test/pom.properties
--------- -------
865 9 files
我需要有兩個項目,而不是一個。第一個項目應該包含資源。第二個項目應該包括第一個項目投入戰爭的資源。 – 2010-02-25 21:56:32
然後WAR覆蓋是你想要的 – 2010-02-26 03:44:30
是的,我現在可以看到疊加層正是我所需要的。 – 2010-02-26 08:42:28
這可以通過不和諧的資源神器期間validate
階段,例如它解壓到的src /主/資源在戰爭中的項目來完成。資源POM是微不足道,但戰爭POM將包含以下內容:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack</id>
<phase>validate</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>my.company</groupId>
<artifactId>resource-artifact</artifactId>
<version>1.0</version>
<overWrite>true</overWrite>
<outputDirectory>src/main/resources</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
@Pascal Thivent你似乎知道你周圍的maven文檔的方式,它的寫得很好,但是如果你問我,結構很糟糕。是否有鏈接包含從a到z的所有文檔,也許我會找到一些我可以稍後使用的,甚至現在可以使用的東西,但我不知道它存在.. +1 – ant 2010-02-25 23:14:33
這就是它!謝謝。 – 2010-02-26 08:40:32
@c0mrade文檔是人們經常抱怨的東西,所以我想你是對的(信息在那裏,但很難找到,這正是你所說的)。幸運的是,我知道去哪裏尋找或者現在搜索什麼。但是有一些很好的書可以幫助你,例如http://www.sonatype.com/book/(可以在線獲得)或http://www.packtpub.com/apache-maven-2-effective-implementations/書。強烈推薦。 – 2010-02-26 09:41:25