在战争中打包Javascript文件?
问题描述:
我正在开发一个基于Servlet的Java项目,使用Maven将其打包为一场战争。 有没有一种方法可以将JavaScript(JS)文件与此项目一起使用(当项目在Tomcat服务器上加载时,它们应该在某个URL处可用)。在战争中打包Javascript文件?
我环顾四周,但还没有找到任何工作解决方案。
答
也许更好的解决方案是坚持Maven约定,它指定您的Web应用程序的根目录是src/main/webapp
。
所以,如果你把所有的Javascript文件放在src/main/webapp/javascript
(或src/main/webapp/js
)中,它们将被整合到你的最终战争包中。
在Maven WAR插件中,他们给出了一些关于目录内容的描述(例如参见here)。例如:
|-- pom.xml
`-- src
`-- main
|-- java
| `-- com
| `-- example
| `-- projects
| `-- SampleAction.java
|-- resources
| `-- images
| `-- sampleimage.jpg
`-- webapp
|-- WEB-INF
| `-- web.xml
|-- index.jsp
`-- jsp
`-- websource.jsp
正如你所看到的,你可以在这里把资源webapp/xxx
目录,如jsp
文件。
如cuh所述,如果你的目录结构不同,你也可以配置Maven WAR插件。
答
可以使用maven-war-plugin并将其配置是这样的:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<warSourceDirectory>${basedir}/src/main/webapp</warSourceDirectory>
<webResources>
<resource>
<directory>your/path/to/js</directory>
<targetPath>js</targetPath>
</resource>
</webResources>
</configuration>
</plugin>
见here。
编辑:你可能不希望包括js
到classes
文件夹。
答
将它们放在src/main/webapp下的目录中。也就是说,假设您使用maven-archetype-webapp
原型生成了它。
我目前的应用程序有他们在src /主/ web应用/ JavaScript和访问他们在这样的JSP:
<script type="text/javascript" src="javascript/jquery-1.4.2.min.js"></script>
(在SRC /主/ web应用jsp文件即是)
这是一个类似的问题。 http://stackoverflow.com/questions/8397357/copy-a-file-during-maven-build-phase – 2013-05-01 19:22:12