如何在Maven和Eclipse中管理多个web应用程序的共享资源?
注意:在这个问题的第一个版本中,我没有得到任何回应,所以我修改了它,使之更加通用 上下文 我的项目分为几个maven模块和几个web应用程序。结构如下:如何在Maven和Eclipse中管理多个web应用程序的共享资源?,eclipse,maven,maven-eclipse-plugin,Eclipse,Maven,Maven Eclipse Plugin,注意:在这个问题的第一个版本中,我没有得到任何回应,所以我修改了它,使之更加通用 上下文 我的项目分为几个maven模块和几个web应用程序。结构如下: my-project + pom.xml +-- commons +-- persistence +-- ... +-- web-app-1 +-- web-app-2 +-- ... 所有web应用程序共享公共资源,如JS、CSS和图像文件 我没有在每个web-app-X中复制这些资源,而是决定创建另一个名为we
my-project
+ pom.xml
+-- commons
+-- persistence
+-- ...
+-- web-app-1
+-- web-app-2
+-- ...
所有web应用程序共享公共资源,如JS、CSS和图像文件
我没有在每个web-app-X
中复制这些资源,而是决定创建另一个名为web资源
的项目,这是一个WAR项目。
结构如下所示:
my-project
+ pom.xml
+-- commons
+-- persistence
+-- ...
+-- web-app-1
+-- web-app-2
+-- ...
+-- web-resources
+-- pom.xml
+-- src/main/webapp
+-- web.xml (which is almost empty, just need to be present for Maven)
+-- web_resources
+-- css
+-- images
+-- javascript
Maven 在Maven 2中(或Maven 3,因为我刚刚将我的项目迁移到Maven 3.0.2),此配置很容易管理,因为所有
web-app-X
都将web资源
声明为依赖项:
<groupId>foo.bar</groupId>
<artifactId>web-app-1</artifactId>
...
<dependencies>
<dependency>
<groupId>foo.bar</groupId>
<artifactId>web-resources</artifactId>
<version>${preclosing-version}</version>
<type>war</type>
</dependency>
...
当我运行mvn eclipse:eclipse
配置时,它成功地将此信息添加到我的.project
文件中:
<projectDescription>
...
<linkedResources>
<link>
<name>web_resources</name>
<type>2</type>
<location>C:\dev\project\web-resources\src\main\webapp\web_resources</location>
</link>
</linkedResources>
<projectDescription>
问题
- 是否有更好的方法来管理此类配置
技术资料
Java 6、Maven 3.0.2、Maven eclipse plugin 2.8、eclipse 3.3.2(但我可以用较新版本的eclipse进行测试),nom2eclipse plugin。您可能想看看这篇博文。它介绍了使用maven共享资源的方法:
从Servlet 3.0开始,您可以通过将资源放在src/main/resources/META-INF/resources目录中来共享资源 部署webapp时,Servlet3.0会从上下文路径提供这些资源。例如,在你的情况下
web-resources
-- src
---- main
------ resources
-------- META-INF
---------- resources
------------ css
-------------- global.css
------------ images
-------------- background.png
让我们假设my_项目依赖于web资源,并部署到url
通过该配置,以下URL将解析为正确的资源:
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
web-resources
-- src
---- main
------ resources
-------- META-INF
---------- resources
------------ css
-------------- global.css
------------ images
-------------- background.png
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">