1

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

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

请赐教,先谢谢了。

4

3 回答 3

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.

于 2012-07-31T18:06:30.310 回答
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
于 2012-07-31T17:38:44.060 回答
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

于 2018-07-25T14:06:08.800 回答