2011-06-25 130 views
1

我有一個maven項目,其中一些xlsx文件在項目運行階段後生成。這些Excel表也被其他一些項目使用。所以我需要將這些Excel工作表發佈到遠程本地存儲庫。Maven-部署文件目標

我嘗試了部署插件的部署文件目標。但在將Excel表格作爲回收庫中的jar部署後,我嘗試將jar解壓縮,然後我看到excel表格被損壞。 Excel工作表轉換爲多個XML文件。 (Sheet1.xml,Sheet2.xml ..)

Maven的命令: -

MVN清潔部署:部署文件-Durl =文件:/// C:\庫-Dfile = Series.xlsx - DpomFile = seriesXL.pom

SeriesXL.pom: -

<?xml version="1.0" encoding="UTF-8"?> 
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.test.pjt</groupId> 
    <artifactId>seriesXL</artifactId> 
    <version>1.0</version> 
    <packaging>jar</packaging> 

<build> 
    <plugins> 
    <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-jar-plugin</artifactId> 
    <version>2.3.1</version> 
    <configuration> 
     <includes> 
      <include>*.xlsx</include> 
     </includes> 
    </configuration> 
</plugin> 
    </plugins> 

</build> 


    <dependencies> 
     <dependency> 
      <groupId>org.apache.poi</groupId> 
      <artifactId>poi</artifactId> 
      <version>3.6</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.poi</groupId> 
      <artifactId>poi-ooxml</artifactId> 
      <version>3.6</version> 
     </dependency> 
    </dependencies> 

</project> 

請幫我解決這個問題。所有的投入都讚賞。

回答

1

微軟正在試圖推動正在使用ZIP和XML在他們的辦公套件的新的文件格式。該方法將文件大小減少了大約50%。

Reference

這意味着excel文件實際上是不同個XML和其它元數據的信息的壓縮文件。

我做了一個變通來解決問題:

  1. excel表生成之後,我已經加入該文件到一個zip(SeriesXL.zip),使用java.util.zip.ZipEntry

  2. 然後使用我能夠在本地存儲庫中成功部署SeriesXL.jar同時提取罐,我可以看到的原始版本的命令

    mvn clean deploy:deploy-file -Durl=file:///C:\repository -Dfile=SeriesXL.zip -DgroupId=com.test.pjt -DartifactId=seriesXL -Dversion=1.0 -Dpackaging=jar 
    

部署zip文件Excel工作表,而不僅僅是一束XML文件。

順便說一句,感謝鄧妮的支持。

1

這是因爲使用deploy-file命令您的pom將被忽略。您必須運行mvn deploy,以便調用maven-jar-plugin(它是在包階段中默認調用的)。

使用您的命令,您將xslx直接部署到您的存儲庫中,並且我懷疑它是作爲jar來處理的,因此如果您解壓jar(因爲xlsx也只是一個打包文件,由各種xml文件組成)。

我建議你閱讀有關Maven的一些文檔生命週期等(Maven Lifecycles

+0

感謝您的回覆。但是我的項目需求是,先構建項目,將pjt jar部署到nexus repo,然後運行單元測試,最後調用Main()方法。在成功執行該項目後,將會動態生成一個Excel表單(其中包含一些pjt信息)。這些信息也應該可用於其他項目。這就是爲什麼我試圖手動發佈該excel表單作爲nexus中的一件神器。我將包裝方案用作「罐子」。是否有可能創建一個包含原始格式的Excel表格的jar? – appu

+0

也許下面的命令將起作用:mvn deploy:deploy-file -Durl = file:/// C:\ repository -Dfile = Series.xlsx -DgroupId = com.test.pjt -DartifactId = seriesXL -Dversion = 1.0 – dunni

+0

Can你試一下? – dunni