2011-11-22 91 views
7

我正在使用Maven 3进行一些Web开发。我知道如何使用maven来解决基于java的jar文件。我如何使用maven解决JavaScript依赖关系,例如我想让maven自动将jquery放入我的webapp/js文件夹中?如何使用Maven将JQuery安装到我的Web应用程序中?

是否有可能使用Maven 3做翻译JavaScript依赖关系?

回答

5

你可以创建自己的“战争”,它在你指定的路径中有jquery。

之后,将战争添加到您的真实Web应用程序中。 Maven应该合并它。我认为它被称为“处理覆盖”。

我使用相同的一些GWT应用程序,其中的JavaScript由一个maven插件生成,它运作良好。

+0

如何使用maven将战争添加到我的项目中?我可以制作传递式JavaScript依赖关系吗? – ams

+0

将其添加为类型war的依赖项。在将其添加到其他项目之前,您需要一个带有jQuery的Web项目并将其安装到您的存储库。 –

+0

覆盖文档http://maven.apache.org/plugins/maven-war-plugin/examples/war-overlay.html – ams

0

也许你应该使用CDN之一来包含外部JavaScript库到您的webapps? 例如对于jQuery,您可以简单地将其包含在任意网址中:http://docs.jquery.com/Downloading_jQuery#CDN_Hosted_jQuery

来自CDN的库也会减少您的服务器带宽使用量。

+0

从CDN托管不适合此应用程序,应用程序必须自包含它所需的所有内容 – ams

0

您可以在您的回购中使用您的jquery版本在里面创建一个新的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> 

以前的配置假定您已经称为目录与你的拉链“JS” jquery.js里面。它会在你的JS战解压缩/ jquery.js和

更多信息here

2

也许WebJars可以帮助你:

WebJars的客户端网络库(如jQuery的&引导)包装到JAR(Java Archive)文件中。

  • 明确和易于管理的基于JVM的Web应用程序
  • 客户端依赖
  • 基于JVM的应用构建工具(如Maven的,摇篮,& SBT)下载客户端依赖
  • 专有该客户端依赖你使用
  • 传递依赖奇迹般地出现

警告:WebJars做不要把jQuery文件放在webapp/js文件夹中。请阅读documentation以了解它如何与一些流行的框架一起使用。

1

尝试添加到您的pom.xml文件。它的工作对我来说:

<dependency> 
    <groupId>com.efsavage.jquery</groupId> 
    <artifactId>jquery-maven</artifactId> 
    <version>1.7.2</version> 
</dependency> 

这个库给你一个办法jQuery的拖放到你的项目作为Maven的依赖,这意味着你不必在你自己的源代码控制这些第三方文件。

来源:here

+0

您好,如何在添加依赖项后在JSP中使用它? – Ph0b0x

相关问题