使用maven在Jar中打包javascript文件?

时间:2012-07-31 17:13:31

标签: java maven jar

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

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

3 个答案:

答案 0 :(得分:6)

如果你使用标准的Maven项目布局:

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

然后,使用JAR打包的普通POM文件会将您的Javascript文件放入输出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下的所有文件夹结构。

答案 1 :(得分:2)

  1. mainClass不是manifest.mf中的必需条目,这是来自典型开源库的最小manifest.mf示例

    Manifest-Version: 1.0
    Archiver-Version: Plexus Archiver 
    Created-By: Apache Maven 
    Built-By: hudsonagent 
    Build-Jdk: 1.5.0_15 
    
  2. 我想这个选项可能会改变你的文件结构,试试看你是否可以使用结果。

  3. 请参阅标准maven项目结构http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html

答案 2 :(得分:1)

Maven确实不是正确的打包工具。您可能要使用NPM或YARN,它们是JavaScript特定的打包工具。

https://www.npmjs.com/

https://yarnpkg.com/lang/en/

如果您确实要将JavaScript代码打包到Jar中,则可以按照标准目录布局中的指示使用src/main/resources目录:http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html

您还可以修改Maven在何处查找资源:https://maven.apache.org/plugins/maven-resources-plugin/examples/include-exclude.html

Maven和Java支持另一种称为WAR的软件包类型,该软件包类型用于包装前端代码(HTML,JS,CSS,图像等)以及后端Java代码:https://maven.apache.org/plugins/maven-war-plugin/usage.html

相关问题