2014-01-20 39 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