2012-07-31 86 views
1

我是Maven 2的新手,并试图使用maven(没有Java类,但只有扩展名为.js的文件)​​将一组javascript(如Dojo库)打包到jar库中。所以我想我应该尝试maven-assembly-plugin,这里有一些顾虑:使用maven在Jar中打包JavaScript文件?

  1. 没有mainClass,但我怎么能仍然有MANIEST.MF?
  2. 如果我不打算更改jar中的文件层次结构,我可以使用jar-with-dependencies作为<descriptorRefs>吗?
  3. 可能这是一个愚蠢的问题,但我应该在哪里放pom.xml(在javascript lib文件夹或javascript lib文件夹的同一级别)?

请赐教,谢谢提前。

+0

是否要将JS文件包含到现有Java Maven项目的JAR构件中,还是希望生成一个除JS文件外的其他任何jar文件? – BlueDog 2012-07-31 17:34:04

+0

@Tim我想打包一个JavaScript库作为jar文件,而不是将js文件包含在现有的jar文件中。 – Dreamer 2012-07-31 17:38:52

回答

6

如果您使用的是标准的Maven项目布局,像这样:

project 
    |-src 
    . |-main 
    .  |-resources 
    .   |-<JS files here> 
    |-pom.xml 

然后使用该JAR包装将在您的JavaScript文件正常POM文件进入输出JAR。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.foo.bar</groupId> 
    <artifactId>foo</artifactId> 
    <packaging>jar</packaging> 
    <version>1.0-SNAPSHOT</version> 
    <name>Foo</name> 

</project> 

这将保留src/main/resources下的所有文件夹结构。

+0

谢谢你的细节。解决方案的一个问题是,js文件处于相对复杂的层次结构中(如Dojo或jQuery UI),因此我们需要逐个重新分配'assembly.xml'中的路径,或者将类路径分配给父文件夹那么所有的后代文件夹都遵循父类路径?谢谢。 – Dreamer 2012-07-31 19:16:24

+1

是的,这将处理'resources'目录下的一系列嵌套文件夹,并将保留JAR中的布局。 – 2012-07-31 19:40:03

+1

组件是否真的有必要?我认为有一个简单的“packaging = jar”pom,只有* .js到src/main/resources才能完成工作,不是吗? – 2012-08-01 06:09:51

相关问题