問題タブ [jar-with-dependencies]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1289 参照

maven - Maven: 依存関係のある Jar VS 依存関係のない Jar

私は現在 Java プロジェクトに取り組んでおり、maven を使用して最終的な jar を構築しています。周知のように、jar をビルドするには 2 つの方法があります。つまり、依存関係のある単一の jar と、依存関係のない jar です。後者の場合、依存する jar もクラスパスに追加する必要があります。

原則として両方とも機能します。個人的には、依存関係のある 1 つの jar を好みますが、プロジェクト チームのメンバーは、依存関係のない別の jar を使用することにしました。ここで、どちらの選択が優れているかを知りたいですか?

0 投票する
3 に答える
65 参照

java - Jar の依存関係がそのマニフェストにリストされていないのはなぜですか

おそらくオプションのフィールドとして、そのマニフェストにリストされているjarの依存関係を持つことは本当に便利だと私には思えます。この機能がなければ、どこかの Web 上で見つけたり、依存関係管理ツールを使用したり、それらの線に沿った何かを使用したりせずに、jar が何に依存しているかを知ることはほぼ不可能です。誰もがアーティファクト ID、グループ ID、バージョン規則全体を使用するようになったので、プロジェクトのセットアップに必要なツールが大幅に簡素化されると思います。

必要以上に Maven を使用する必要があることに気付きました。なぜなら、何かに Apache コモンズやロギングが必要かどうか、またはどのような場合であれ、何かが必要かどうかを判断するのが非常に面倒だからです。マニフェスト フィールドに jar をリストするだけではどうですか?

0 投票する
1 に答える
2946 参照

spring-boot - Spring Boot Web サーバーは Eclipse で正常に動作し、サーバーでの起動に失敗します: EmbeddedServletContainerFactory Bean がありません

Spring Documentationのモデルに従って、非常に単純な Hello World のようなアプリケーションを作成しました。それは Eclipse 上でスピンアップし、すべてが素晴らしく見えました。甘い!実行したところ、URL を参照できました。これまでで最速の開発。

しかし、これはサーバー上で実行する必要があり、jar を見ると、約 4K しかないので、大量のクラスパス構成がないと機能しないことがわかっていました。それを避けるために、jar-with-dependencies jar が必要だと考えました。

これが私の pom.xml で、アセンブリ プラグインの jar-with-dependencies ゴールを追加することを除いて、Spring の例と基本的に同じです。

しかし、私が物事を実行するとき:

私は得る:

org.springframework.context.ApplicationContextException: 組み込みコンテナーを開始できません。ネストされた例外は org.springframework.context.ApplicationContextException: Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory Bean です。

違いはないと思いますが、このプロジェクトの唯一のクラスは次のとおりです。

私は何を間違えましたか?

0 投票する
0 に答える
763 参照

java - Android Studio - 標準 Java プロジェクトの依存関係を含む JAR ファイルを作成する

Androidプロジェクトではなく、標準のJavaプロジェクトを構築しています。

Google の Gson ライブラリを使用しています。Gson ライブラリへの依存関係を維持しながら、このプロジェクトの JAR ファイルを作成する方法はありますか? 質問の構成が間違っている場合は、修正してください。

モジュールの build.gradle は次のようになります。

こちらの手順を使用して JAR ファイルを作成しましたが、「java -jar myproject.jar」を使用してコマンド ラインから実行すると、次のエラーが発生します。

myproject.jar にメインのマニフェスト属性がありません

解決策を探してみましたが、依存関係のある JAR ファイルを作成する方法はないようですが、上記のリンクはかなり新しいものです。この場合、AAR ファイルを作成する必要があるようです。

しかし、私のものはAndroidではなくJavaプロジェクトであるため、これはまだ適用されますか?

ありがとう。

編集: このビデオによると、私の Manifest.MF ファイルには「Main-Class:MyMainClassName」という行がありません。JAR からファイルを変更すると、ファイルが破損します。また、Androidスタジオ内からマニフェストファイルを編集できません。そして、これをどのように変更できるか考えていますか?

0 投票する
2 に答える
1656 参照

java - JAR 内で展開された依存関係を持つ jar を構築する Maven

jersey 2.14 とネストされた jar に問題があり、それを理解できません。私はそれを調べたところ、現時点ではまだ修正されているジャージのバグであることがわかりました.

回避策として、maven を使用して、すべての依存関係が jar 内に展開された jar を構築できるようにしたいと考えています。libディレクトリ内にJARを入れたくありません。クラスが必要です。そして、これを行うためのmavenプラグインを理解できないようです。

誰でもこれで私を助けることができますか?

ありがとう、

0 投票する
1 に答える
123 参照

maven - アプリケーションが jar にパックされている場合、Jetty は REST クラスを見つけることができません

Eclipse に埋め込まれた Jetty サーバーを使用してアプリケーションを直接起動すると、たとえば "localhost:8082/getModules" で REST API にアクセスでき、すべてが機能しています。ただし、アプリケーションから jar-with-dependencies を作成すると、「localhost:8082/getModules」に移動した後に取得されます

HTTP エラー: 404 /database/getModules へのアクセスに問題があります理由: 見つかりません

GET リクエストが来たときに表示されるログイン コンソールが見つかりました。サーブレット コンテナーが見つからず、その後、応答が HTTP 404 not found に設定されていると表示されます。

問題は getJersey() メソッドのどこかにあると思います:

または、pom.xml のどこかに問題がある可能性があります。

では、残りのクラスでパッケージへのリンクを正しく設定するにはどうすればよいでしょうか?

0 投票する
1 に答える
1628 参照

java - 違い:Mavenアセンブリ:アセンブリとアセンブリ:単一の目標?

依存性注入 (短剣 2) コードを駆動するいくつかの注釈を使用して、アレクサアプリを構築しようとしています。alexa-sample-skills-testは pomの例を示し、次のコマンドを使用して依存関係のある jar を構築するように指示します。

上記を使用したビルドは、このリンクにリストされている例外と出力で失敗します。Maven docsを少し掘り下げた後、assembly:assembly ゴールは、大混乱を引き起こす可能性のある非標準のビルド プロセスを使用していることがわかりました。代わりに、maven assembly-plugin docs では、assembly:single ゴールを使用することを推奨しています。したがって、代わりに次のコマンドを使用します。

出来上がり..コードのコンパイルとリンクはうまくいきます。[project-name]-jar-with-dependencies.jar ファイルを取得します。しかし、Amazon サーバーに jar をアップロードしてスキルをテストしようとすると、テストが失敗します。ログには、クラス: echo.client.AccountInfoStreamHandler が見つからなかった (ClassNotFoundException) と示されています。このクラスは、ルート ランチャー クラスに発生するだけだと思います。

ここで、dagger 2 のすべての依存関係を削除し、最も単純なコード ベースで同じことを繰り返します。最初の Maven コマンド (assembly:assembly) が機能します。2 番目の Maven コマンド (assembly:single) は、同じ「ClassNotFoundException」エラーで失敗します。私は何を間違っていますか?私はmavenにあまり詳しくありません.mavenコマンドのトラブルシューティングを試みるのはこれが初めてです。提案、指針、推奨事項は大歓迎です。

参考までに、POM ファイルは次のとおりです。