我正在考虑使用Maven 3进行一些Web开发。我知道如何使用maven来解决基于java的jar文件。我如何使用maven来解决JavaScript依赖关系,例如我想让maven自动将jquery放入我的webapp / js文件夹中?
是否可以使用Maven 3进行转换JavaScript依赖?
答案 0 :(得分:5)
您可以在指定的路径上创建自己的“war”,其中包含jquery。
然后将该战争添加到您的真实Web应用程序中。 Maven应该合并它。我认为它被称为“处理叠加”。
我正在使用相同的GWT应用程序,其中javascript是由maven插件生成的,并且运行良好。
答案 1 :(得分:3)
也许WebJars可以帮到你:
WebJars是打包到JAR(Java Archive)文件中的客户端Web库(例如jQuery和Bootstrap)。
- 明确且轻松地管理基于JVM的Web应用程序中的客户端依赖
- 使用基于JVM的构建工具(例如Maven,Gradle和SBT)下载客户端依赖项
- 了解您正在使用的客户端依赖项
- 神奇地出现传递依赖
警告:WebJars不会将jquery文件放在webapp/js
文件夹中。请阅读documentation以了解它如何与一些流行的框架一起使用。
答案 2 :(得分:1)
尝试将此添加到您的pom.xml文件中。它对我有用:
<dependency>
<groupId>com.efsavage.jquery</groupId>
<artifactId>jquery-maven</artifactId>
<version>1.7.2</version>
</dependency>
这个库为您提供了一种将jQuery作为Maven依赖项放入项目的方法,这意味着您不必将这些第三方文件包含在您自己的源代码管理中。
来源:here
答案 3 :(得分:0)
可能你应该使用CDN之一将外部javascript库包含到你的webapps中? 例如。对于jQuery,您可以从http://docs.jquery.com/Downloading_jQuery#CDN_Hosted_jQuery
的任何网址中简单地添加它来自CDN的libs也会降低您的服务器带宽使用率。
答案 4 :(得分:0)
您可以在里面使用您的jquery版本在repo中创建一个新的zip工件。
然后使用maven war插件将其部署到你的战争中。
仔细查看<targetPath>
和<includes>
,确保在您需要的地方部署所需内容:)
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<overlays>
<overlay>
<groupId>yourgroupid</groupId>
<artifactId>yourJqueryArtifactId</artifactId>
<type>zip</type>
<targetPath/>
<includes>
<include>js/jquery.js</include>
</includes>
</overlay>
</overlays>
</configuration>
</plugin>
上一个配置假设你的zip中有一个名为'js'的目录,里面有jquery.js。它将在js / jquery.js的战争中解压缩
更多信息here