2017-01-12 24 views
0

私はmavenが新しく、最近は依存関係を管理するためにmavenを使用している間にスイングプロジェクトを開発しました。mavenスイングプロジェクトの実行可能なjar

今私がやりたいことは、自分のプロジェクトをパッケージ化して配布し、ファイルを別のコンピュータ/ラップトップに転送して、開いて使用することができるようにすることです。

私の研究から、アセンブリまたはシェードメイヴンプラグインを使用してプロジェクトをパッケージ化する必要があることを理解しました。

私は両方を試して、実行可能なjarを持つことができましたが、実行しようとしましたが、何も起こりません。ここで

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>1</groupId> 
    <artifactId>Fin</artifactId> 
    <version>0.0.6-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>AinsfieldFin</name> 
    <url>http://maven.apache.org</url> 

    <properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 

    <dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
    <groupId>org.apache.poi</groupId> 
    <artifactId>poi</artifactId> 
    <version>3.14</version> 
    </dependency> 

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

    <dependency> 
    <groupId>org.docx4j</groupId> 
    <artifactId>docx4j</artifactId> 
    <version>2.8.0</version> 
    </dependency> 

    <dependency> 
    <groupId>org.apache.xmlgraphics</groupId> 
    <artifactId>batik-bridge</artifactId> 
    <version>1.7</version> 
    </dependency> 
    </dependencies> 



    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-shade-plugin</artifactId> 
     <version>2.4.3</version> 
     <executions> 
      <execution> 
      <phase>package</phase> 
      <goals> 
       <goal>shade</goal> 
      </goals> 
      <configuration> 
       <transformers> 
       <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> 
        <mainClass>com.Fin.index</mainClass> 
       </transformer> 
       </transformers> 
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-surefire-plugin</artifactId> 
       <version>2.19.1</version> 
       <configuration> 
        <argLine>-Dfile.encoding=UTF-8</argLine> 
       </configuration> 
      </plugin> 

      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <configuration> 
        <encoding>UTF-8</encoding> 
        <Version>3.1</Version> 
       </configuration> 
      </plugin> 

    </plugins> 
    </build> 
</project> 

ファイルindex.java

package com.Fin; 

//swing imports 

import com.Fin.process.ManipulationExcel; 
import com.Fin.process.ManipulationWord; 


public class index { 

    //declarations 


    /** 
    * Launch the application. 
    */ 
    public static void main(String[] args) { 
     EventQueue.invokeLater(new Runnable() { 
      public void run() { 
       try { 
        index window = new index(); 
        window.frame.setVisible(true); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
      } 
     }); 
    } 

    /** 
    * Create the application. 
    */ 
    public index() { 
     initialize(); 
    } 

    /** 
    * Initialize the contents of the frame. 
    */ 
    private void initialize() { 
      // present layout and app functions 
    } 
} 

がされており、私が使用しています:ここで

はここシェードプラグインを使用して、私のpom.xmlがある私のプロジェクト構造 HERE

です私のIDEとしての日食

ご協力いただきありがとうございます

は解決済み:私のpom.xmlは、次のようになります。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>1</groupId> 
    <artifactId>Fin</artifactId> 
    <version>0.1.1</version> 
    <packaging>jar</packaging> 

    <name>AinsfieldFin</name> 
    <url>http://maven.apache.org</url> 

    <properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 

    <dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
    <groupId>org.apache.poi</groupId> 
    <artifactId>poi</artifactId> 
    <version>3.14</version> 
    </dependency> 

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

    <dependency> 
    <groupId>org.docx4j</groupId> 
    <artifactId>docx4j</artifactId> 
    <version>2.8.0</version> 
    </dependency> 

    <dependency> 
    <groupId>org.apache.xmlgraphics</groupId> 
    <artifactId>batik-bridge</artifactId> 
    <version>1.7</version> 
    </dependency> 
    </dependencies> 



    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-shade-plugin</artifactId> 
     <version>2.4.3</version> 
     <executions> 
      <execution> 
      <phase>package</phase> 
      <goals> 
       <goal>shade</goal> 
      </goals> 
      <configuration> 
       <transformers> 
       <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> 
        <mainClass>com.Fin.index</mainClass> 
       </transformer> 
       </transformers> 
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 
     <plugin> 
       <!-- Build an executable JAR --> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-jar-plugin</artifactId> 
       <version>2.4</version> 
       <configuration> 
        <archive> 
         <manifest> 
          <addClasspath>true</addClasspath> 
          <classpathPrefix>lib/</classpathPrefix> 
          <mainClass>com.Fin.index</mainClass> 
         </manifest> 
        </archive> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-surefire-plugin</artifactId> 
       <version>2.19.1</version> 
       <configuration> 
        <argLine>-Dfile.encoding=UTF-8</argLine> 
       </configuration> 
      </plugin> 

      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <configuration> 
        <encoding>UTF-8</encoding> 
        <Version>3.1</Version> 
       </configuration> 
      </plugin> 

    </plugins> 
    </build> 
</project> 
+0

たぶん何かを[this]のような(http://stackoverflow.com/questions/24899985/this-project-cannot-be-added-because-it-does-not-produce-a-jar-file-using-an-ant/24900260 #24900260)が助けてくれるかもしれない – MadProgrammer

答えて

1

あなたののpom.xml内のこの部分を使用してこれを行うことができます(あなたのメインクラスの場所を変更:

<build> 
     <plugins> 
      <plugin> 
       <!-- Build an executable JAR --> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-jar-plugin</artifactId> 
       <version>2.4</version> 
       <configuration> 
        <archive> 
         <manifest> 
          <addClasspath>true</addClasspath> 
          <classpathPrefix>lib/</classpathPrefix> 
          <mainClass>com.your.mainClass</mainClass> 
         </manifest> 
        </archive> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
+0

こんにちは。あなたの助けていただきありがとうございますが、私は私のメインクラスの場所を変更する場合、それは動作するはずです、あなたが意味するものを理解していない?あなたが私に言った部分を置き換えました。私が走ったときに何も起こりません。 私は何か間違っている場合に備えて、 "Run as"> "Maven Build ...">目標として "パッケージ" –

+0

こんにちは、com.example.Classのようなあなたのメインclass.Locationをタグに置きました。 mvnのクリーンインストールを実行し、次にターゲットに行き、java -jar nameOfJar.jarを試してください。 –

+0

これは、負荷を助けました。それは私のアプリがnullポインタエラーを出しているのを見ることができました!私はエラーとその作業を修正しました!命を救う! –

関連する問題