2012-01-20 4 views
3

Maven用のLaunch4Jポートはひどく書かれており、私が望むように使用することはできません。MavenのWindows用のexeファイルのパッケージjavaファイル

は、以下の基準でexeファイルをgernerateするためにいくつかの良いMavenプラグインは、(それらの少なくともいくつか、可能な場合は)ありません:

  • ジャーはに対して異なるディレクトリにあることができる瓶のんがラッピングjarファイル
  • jarはまったく依存しているので、別の名前のディレクトリに新しいjarを追加しても効果はありません。
  • あなたは2つの実行1指定して、Mavenのアセンブリ・プラグインを使用することができます(それほど重要ではない)可能
+3

あなたはappassembler-のmaven-pluginのをするために...それは、Javaアプリケーションのためのバッチ/スクリプト/ JSWファイルが生成されます外観をとっているが、 exeファイルではありません。 – khmarbaise

+0

jarファイルをラップせずにこれがどのように可能かわかりません。 –

答えて

-1

場合、ファイル

  • プロセスが.exeの名の下で実行を通じてXmxのとのX msを設定することができますメインクラスとすべての依存関係を単一のjarにパッケージ化するので、クラスパスは必要ありません。 2回目の実行では、すべての構成ファイルを同じjarファイルに入れます。 最終的には、exeファイルを持っていないので、zipファイルのマニフェストファイルと一緒にjarファイルがあります。

    <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-assembly-plugin</artifactId> 
        <version>2.2-beta-5</version> 
        <executions> 
        <execution> 
         <id>make-assembly1</id> 
         <phase>package</phase> 
         <goals> 
         <goal>single</goal> 
         </goals> 
         <configuration> 
         <archive> 
          <manifest> 
          <mainClass>com....class.with.the.main</mainClass> 
          </manifest> 
         </archive> 
         <descriptorRefs> 
          <descriptorRef>jar-with-dependencies</descriptorRef> 
         </descriptorRefs> 
         </configuration> 
        </execution> 
        <execution> 
         <id>make-assembly2</id> 
         <phase>package</phase> 
         <goals> 
         <goal>single</goal> 
         </goals> 
         <configuration> 
         <descriptors> 
          <descriptor>distribution.xml</descriptor> 
         </descriptors> 
         </configuration> 
        </execution> 
        </executions> 
    </plugin> 
    
  • 1

    あなたはexeファイルにあなたのjarファイルを包むためのプラグイン

      <plugin> 
           <groupId>com.akathist.maven.plugins.launch4j</groupId> 
           <artifactId>launch4j-maven-plugin</artifactId> 
           <version>1.5.2</version> 
          </plugin> 
    

    を使用することができます。

    事前に答えの1つをaberesのように1つの瓶にまとめることができます。

    ので、例えば、設定は次のようになります。

        <plugin> 
            <groupId>com.akathist.maven.plugins.launch4j</groupId> 
            <artifactId>launch4j-maven-plugin</artifactId> 
            <executions> 
             <execution> 
              <id>l4j-clui</id> 
              <phase>install</phase> 
              <goals> 
               <goal>launch4j</goal> 
              </goals> 
              <configuration> 
               <!-- 
               <headerType>gui</headerType>  --> 
               <headerType>console</headerType> 
               <jar>target/yourFinalJar.jar</jar> 
               <outfile>target/${project.build.finalName}.exe</outfile> 
               <errTitle>${project.name}</errTitle> 
               <icon>your/Icon.ico</icon> 
               <jre> 
                <path>jre</path> <!-- if you bundle the jre --> 
               </jre> 
    
               <versionInfo> 
                <fileVersion>1.2.3.4</fileVersion> 
                <txtFileVersion>${project.version}</txtFileVersion> 
                <fileDescription>${project.description}</fileDescription> 
                <copyright>(c) ${project.inceptionYear} MyCompany</copyright> 
                <productVersion>1.0.0.0</productVersion> 
                <txtProductVersion>${project.version}</txtProductVersion> 
                <productName>${project.name}</productName> 
                <companyName>MyCompany</companyName> 
                <internalName>${project.name}</internalName> 
                <originalFilename>${project.build.finalName}.exe</originalFilename> 
               </versionInfo> 
              </configuration> 
             </execution> 
            </executions> 
           </plugin>