2016-04-22 11 views
0

Netbeansで「Mavenプロジェクト」として書かれた小さなユーティリティー・プログラムを持っています(プロジェクトのアイコンの上に「m」という形があります)。私は、このユーティリティとそれが依存するライブラリをjarファイルとしてパッケージ化したいと思います。 jarファイルに必要なランタイムライブラリを含めて、別にそれらをパッケージ化する必要はありません。Netbeans/Mavenプロジェクトからデスクトップjarを作成する

ビルドを実行すると、プロジェクトディレクトリに「dist」と「lib」ディレクトリが作成されます(プロジェクトプロパティでメインクラスを設定しているので)。私はそれをマニフェストファイルに指定させます。これは起こっていません。プロジェクトはIDEでうまく構築され実行されますが、ユーティリティ固有のクラス、ライブラリクラス、マニフェストにはメインクラスが書き込まれていないjarが作成され、ライブラリクラスはjarファイルには含まれません。

これは、デフォルトのNetbeans Javaプロジェクトではなく、これがmavenプロジェクトであるためですか?これをNetbeansのMavenプロジェクトでどのように行うことができますか?

-

提案としてのmaven-組立・プラグインを追加した後、「クリーンとビルド」からのコンソール出力は次のようになります。

cd C:\Users\rcook\Documents\NetBeansProjects\OlbUserLoad; "JAVA_HOME=C:\\Program Files\\Java\\jdk1.7.0_07" M2_HOME=C:\\devTools\\apache-maven cmd /c "\"\"C:\\devTools\\apache-maven\\bin\\mvn.bat\" -DskipTests=true 
-Dmaven.ext.class.path=\"C:\\Program Files\\NetBeans 8.1\\java\\maven-nblib\\netbeans-eventspy.jar\" -Dfile.encoding=UTF-8 clean install\"" Scanning for projects... 

------------------------------------------------------------------------ Building OlbUserLoad 1.0-SNAPSHOT 
------------------------------------------------------------------------ 

--- maven-clean-plugin:2.4.1:clean (default-clean) @ OlbUserLoad --- Deleting C:\Users\rcook\Documents\NetBeansProjects\OlbUserLoad\target 

--- maven-resources-plugin:2.5:resources (default-resources) @ OlbUserLoad --- [debug] execute contextualize Using 'UTF-8' encoding to copy filtered resources. Copying 1 resource Copying 0 resource 

--- maven-compiler-plugin:2.0.2:compile (default-compile) @ OlbUserLoad --- Compiling 1 source file to C:\Users\rcook\Documents\NetBeansProjects\OlbUserLoad\target\classes 

--- maven-resources-plugin:2.5:testResources (default-testResources) @ OlbUserLoad --- [debug] execute contextualize Using 'UTF-8' encoding to copy filtered resources. skip non existing resourceDirectory C:\Users\rcook\Documents\NetBeansProjects\OlbUserLoad\src\test\resources 

--- maven-compiler-plugin:2.0.2:testCompile (default-testCompile) @ OlbUserLoad --- Nothing to compile - all classes are up to date 

--- maven-surefire-plugin:2.10:test (default-test) @ OlbUserLoad --- Tests are skipped. 

--- maven-jar-plugin:2.3.2:jar (default-jar) @ OlbUserLoad --- Building jar: C:\Users\rcook\Documents\NetBeansProjects\OlbUserLoad\target\OlbUserLoad-1.0-SNAPSHOT.jar 

--- maven-install-plugin:2.3.1:install (default-install) @ OlbUserLoad --- Installing C:\Users\rcook\Documents\NetBeansProjects\OlbUserLoad\target\OlbUserLoad-1.0-SNAPSHOT.jar to C:\Users\rcook\.m2\repository\com\accesspoint\OlbUserLoad\1.0-SNAPSHOT\OlbUserLoad-1.0-SNAPSHOT.jar Installing C:\Users\rcook\Documents\NetBeansProjects\OlbUserLoad\pom.xml to C:\Users\rcook\.m2\repository\com\accesspoint\OlbUserLoad\1.0-SNAPSHOT\OlbUserLoad-1.0-SNAPSHOT.pom 
------------------------------------------------------------------------ BUILD SUCCESS 
------------------------------------------------------------------------ Total time: 2.155s Finished at: Fri Apr 22 10:15:28 EDT 2016 Final Memory: 17M/152M 
------------------------------------------------------------------------ 

私はそれが私たちの姿を助け願っています他に何が欠けているか。

答えて

2

.pomファイルにこのプラグインを含めます。これはMavenにあなたのアプリケーションを依存関係でアセンブルするように指示するためです。

この後、Netbeansでプロジェクトをビルドすると、依存関係のあるjarが表示されます。

<plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <configuration> 
     <descriptorRefs> 
      <descriptorRef>jar-with-dependencies</descriptorRef> 
     </descriptorRefs> 
     <archive> 
      <manifest> 
       <mainClass>Your Main Class</mainClass> 
      </manifest> 
     </archive> 
    </configuration> 
    <executions> 
     <execution> 
      <id>make-assembly</id> 
      <phase>package</phase> 
      <goals>       
       <goal>single</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

を参照してください:Creating a Java Maven Project in NetBeans IDE 7.4

+0

私は、「ファイル名を指定して実行Mavenのインストール」持っていないようだ - 私はそれを可能にするために、POMで何かが必要なのでしょうか? – arcy

+0

@arcy申し訳ありませんが、NetbeansにはEclipseがあります。 .pomファイルの更新を見ると、実際にはpomファイルに実行を追加する必要があります。この後、ビルドボタンを使用してプロジェクトをビルドするだけで、ターゲットフォルダに依存関係のあるjarが表示されます。 –

+0

私は別の投稿でそれを見つけましたが、私はプロジェクトを右クリックして "カスタム - ゴール"を選択することで "クリーンコンパイルアセンブリ:シングル"を実行することも発見しました。ビルド・ボタンが大きなビッグ・ジャーを生成することに気がつきましたが、これはボタンでビルドされているのか、今説明したカスタム・コマンド・ラインでビルドされているのかによって、バイト数が少し異なります。あなたは違いがどうなるか考えていますか? – arcy

関連する問題