我创建了一个包含许多Abstract和Generic类的项目,以及一些复合组件。我将打包更改为JAR,并将其用作另一个项目的maven依赖项。
因此,服务器端的所有内容都在运行。 Spring注入了我的类和东西......但是找不到复合组件。我搜索stackoverflow,并看到一些引用JARs dirs的错误。但我不知道我是否将复合组件放在核心项目的正确目录上。这是我添加它的路径(通常,好像它是一个客户端项目):
- br
- main
- webapp
- resources
- myCompositeFolder
这是对的吗? 如何更改maven包装以使其正常工作?
我还想问另一件事......我必须对复合组件进行成本化,从客户端项目中“注入”一些额外的代码。为此,我在组件上做了类似的事情:
<ui:include src="/filters/extraFilters.xhtml" />
并且该文件(extraFilters)将位于客户端项目webapp文件夹中。 我在同一个项目上测试过,它有效。只是不知道它是否可以从JAR加载!
答案 0 :(得分:2)
得到应有的尊重,不需要额外的评论。请参阅Overlays。
<强>共享库:罐强>
/src/main/java/A.java
<强>共享资源:战争强>
/src/main/webapp/resource/resources/default/1_0/images/a.png
/src/main/webapp/resource/resources/default/1_0/scripts/a.js
/src/main/webapp/resource/resources/default/1_0/stylesheets/a.css
<强>最终web应用:战/ pom.xml的强>
<project ...>
<artifactId>final-webapp</artifactId>
<packaging>war</packaging>
<dependencies>
<dependency>
<artifactId>shared-library</artifactId>
</dependency>
<dependency>
<artifactId>shared-resource</artifactId>
<scope>runtime</scope>
<type>war</type>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<overlay>
<artifactId>shared-library</artifactId>
<excludes/>
</overlay>
</configuration>
</plugin>
</plugins>
</build>
</project>
<强>最终web应用:战争强>
/resource/resources/default/1_0/images/a.png
/resource/resources/default/1_0/scripts/a.js
/resource/resources/default/1_0/stylesheets/a.css
WEB-INF/lib/common-library.jar
答案 1 :(得分:1)
我在没有WAR的情况下工作了。
感谢Visola(http://bearprogrammer.com/)。解决方案是: 但是父(核心)项目中的复合文件夹:
src\resources\META-INF\resources
而且,完成了!一体化JAR!
感谢BalusC,Visola和Jin!