2014-01-20 40 views
3

背景: 我构建了一个JS库,我使用maven打包为一个JAR文件。我正在使用minify maven plugin来合并和缩小JS文件。在JAR中包含minify maven插件的输出

问题: minify maven插件在Web应用程序包中作为WAR使用时效果很好。但在我的情况下,我有一个JAR包装,合并和缩小的JS输出没有打包到JAR文件中。我尝试明确配置要包含在构建中的资源,但这适用于src(比如src/main/resources)下的资源,但不适用于目标文件夹中已有的资源。

这不起作用:

<resources> 
    <resource> 
     <directory>${basedir}/target/${project.build.finalName}/resources</directory> 
     <includes> 
      <include>**/*.js</include> 
     </includes> 
    </resource> 
</resources> 

我得到一个警告说:

"[WARNING] JAR will be empty - no content was marked for inclusion!" 

问题: 我想将JAR包内缩小的JS文件,在META -INF/resources 如何将包含在目标文件夹中的minify-maven-plugin的输出包含到JAR中?夹。

更新: minify maven插件默认输出缩小文件到目标文件夹。我可以选择设置一个特定的目录(在目标中),我希望输出的目标位于其中。插件的minify:minify目标采用可选参数'jsTargetDir'。 即使我将原始源JS设置为资源,问题仍然存在。源JS文件打包到JAR中,但不是缩小的。 Maven的JAR插件和资源插件仅识别src下的文件。由于缩小的文件不在src下,但直接在目标下,mvn包似乎无法识别这些文件。

感谢,

阿南德

+0

js文件如何进入目标目录?假设你的Maven包类型是jar,你是否使用minify插件来将src/main /资源处理到目标目录中?你确认js文件存在于目标目录中吗? –

+0

更新的问题与所需的信息 – Anand

回答

1

你需要它默认点设置选项webappTargetDir${project.build.directory}/${project.build.finalName}

+0

嗨塞缪尔,我应该怎么设置webappTargetDir?目标文件夹中的哪些目录打包在JAR中? – Anand

+0

您不限于目标文件夹。您可以将此选项设置为您想要的任何目录(例如'$ {basedir}/src/main/resources /')。 – samaxes

+0

嗨塞缪尔,我试着设置webappTargetDir和jsTargetDir。合并的JS文件在上述属性中设置的$ {basedir}/src/main/resources /文件夹中生成。但是JAR不包含这些文件。 JAR只有原始的源文件。为什么JAR不打包这些文件?我是否已经太迟了?默认阶段是'流程资源'。我也尝试了“准备包装”阶段。不起作用。 :( – Anand