2011-06-25 5 views
1

プロジェクトの実行後にいくつかのxlsxファイルが生成されるmavenプロジェクトがあります。これらの優れたシートは他のプロジェクトでも使用されています。ですから、これらの優れたアーティファクトをリモートのローカルリポジトリに公開する必要があります。Maven- Deploy file goal

デプロイメントプラグインのデプロイメントファイルの目標を試しました。しかし、レポでjarファイルとしてExcelシートを展開した後、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%削減します。 Excelファイルを意味

Reference

は、実際には異なるXMLSと他のメタデータ情報のパックされたファイルです。私はこの問題を解決するために周りの仕事をしてきた

:Excelシート作成後

  1. を、私はjava.util.zip.ZipEntryを使用して、ZIP(SeriesXL.zip)にそのファイルを追加しました。

  2. は次にコマンド

mvn clean deploy:deploy-file -Durl=file:///C:\repository -Dfile=SeriesXL.zip -DgroupId=com.test.pjt -DartifactId=seriesXL -Dversion=1.0 -Dpackaging=jar 
私は成功したローカルリポジトリにSeriesXL.jarを展開することができるよとjarを抽出しながら、私は、元のバージョンを見ることができましたを使用してzipファイルを展開しますXMLファイルの束だけでなく、Excelシート。

BTWありがとうございました。

1

これは、deploy-fileコマンドでpomが無視されるためです。 maven-jar-pluginが呼び出されるように、mvn deployを実行する必要があります(デフォルトではパッケージフェーズで呼び出されます)。

あなたのコマンドでは、あなたのリポジトリに直接xslxをデプロイしています。それはjarとして扱われると思われますので、xlsxはパックされたファイルでもあるのでさまざまなxmlファイルで構成されています)。

私は(Maven Lifecycles)あなたはMavenのライフサイクルなどに関するいくつかのドキュメントを読んで

+0

返信いただきありがとうございます。しかし、私のプロジェクト要件は、プロジェクトを最初に構築し、pjt jarをネクサスリポジトリにデプロイした後、単体テストを実行し、最後にMain()メソッドを呼び出すようなものです。プロジェクトの実行が成功すると、Excelシートが動的に生成されます(これにはいくつかのpjt情報が含まれています)。これらの情報は他のプロジェクトでも利用可能でなければなりません。だからこそ、私は手作業でそのエクセルシートだけをネクサスのアーティファクトとして出版しようとしました。私は 'Jar'としてパッケージングスキームを使用しました。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

関連する問題