我是Maven 2的新手,并尝试使用maven将一组javascript(如Dojo库)打包到jar lib中(没有java类,只有扩展名为.js的文件)。所以我想我应该尝试maven-assembly-plugin
,这里有一些问题:
mainClass
但我怎么还有MANIEST.MF?jar-with-dependencies
用作<descriptorRefs>
吗?pom.xml
(在javascript lib文件夹或javascript lib文件夹的同一级别)?请提前通知我。
答案 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)
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 :(得分:1)
Maven确实不是正确的打包工具。您可能要使用NPM或YARN,它们是JavaScript特定的打包工具。
如果您确实要将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