2016-07-22 13 views
3

私はIntelliJ IDEA 2016.1.3でjavaプロジェクトを作成しています。ビルド - >ビルドアーティファクト - >ビルド)、すべて外部ライブラリ(org.apache.commons:commons-lang3:3.4)を使用したいと思うようになるまでうまくいきます。しかし、抽出されたjarにはその依存関係が必要です。 どうすればいいですか?IntelliJ IDEA:ビルドされたアーティファクトの正しい場所にMaven依存関係を置く方法

私はプロジェクト構造 - >プロジェクト設定 - >成果物 - >を試してライブラリとして追加しようとしました。ジャーアーティファクトで enter image description here

ルック: enter image description here

ザ・はそのコードを使用しようとするとdependecy瓶は、瓶のアーティファクトのルートフォルダにありますが、それでもこのエラーを取得している望んでいました。

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils 
.... 
.... 
Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang3.StringUtils 
at java.net.URLClassLoader.findClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
... 37 more 

何が欠けていますか?

+0

あなたはjarファイルがその中にクラスパスのjarファイルを持っている「脂肪ジャー」を、希望しているように見えます。これには一般的に特別な処理が必要です。私はSpring Bootを使用し、Spring Boot Mavenプラグインはこれを行います。 Spring以外のいくつかの再パックャもあります。 – chrylis

+0

ありがとう@chrylis、私はintelliJが私のためにそれをすることを望んだ:( まあまあ、私は急いで、私はただ1つのメソッドが必要_countMatches_ – ThinkDeep

+0

'プライベートint countMatches(@NotNull文字列のソース、@NotNull文字列パターン(int idx = 0;(idx = source.indexOf(pattern、idx)))= if(!source.isEmpty()&&!pattern.isEmpty()){ int count = 0; 1; IDX + = pattern.length()){ カウント++;} 戻りカウント; }他{ 戻り0;} } ' – ThinkDeep

答えて

0

上記のコメントで述べたように、ライブラリ全体を使用する代わりにカスタム実装を使用しました。

しかし、別のプロジェクトで、私はちょうど同じ問題に遭遇してきた、もちろん以前の使用法のように自分自身を実装することは容易ではない nanohttpd、この時間:D

は私がオーダーのことを発見しましたartifact/maven依存関係の問題の作成 私は以前のように依存関係を追加していますが、artifactの設定を作成する前に作成しています。

出来上がり、依存関係が抽出されており、最終的artifactoryはうまく機能:) enter image description here

関連する問題