問題タブ [appassembler]
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.
spring - Maven プロパティ ファイルの公開
環境固有の値をロードするために、src/main/resources フォルダーのさまざまなサブフォルダーにいくつかのプロパティ ファイルがあります。
- com/app/ws/webservices-dev.properties
- com/app/ws/webservices-test.properties
- com/app/jms/jms-dev.properties
- com/app/jms/jms-test.properties
私は春を通してこれらのプロパティをロードしています
ENVIRONMENT は環境変数です。
appassemblyr-maven-plugin を使用して、実行可能な .sh ファイルを生成しています。
この結果、すべてのプロパティ ファイルが、生成された jar ファイルの一部になります。いくつかのプロパティを公開して、展開時に値を設定したいと考えています。次の構成を試しました
ただし、Spring はプロパティをロードしません。おそらく、春の設定で指定されたパスが原因です(上記を参照)。
パッケージ時に appassemblyr\conf フォルダーにプロパティ ファイルを移動し、クラスパスからそれらをスプリング ロードするために使用する Maven 構成を教えてください。私は、開発 (Eclipse では、maven ビルドとしての単体テスト) と展開の両方で機能する構成を求めています。
eclipse - Maven アプリ アセンブラー、アセンブリ、およびクラスパス: 構成ディレクトリの競合
アプリ アセンブラー Maven プラグインを使用して、Java アプリケーションのインストールを作成しています。一部のデータ (プロパティと一部のユーザー生成データ) を、Jar ファイルではなくファイルシステムで利用できるようにしたいと考えています。
config
app-assemblyr を使用すると、ディレクトリをクラスパスに追加するだけでそれを実行できます。
config
一部のテストを実行するには、同じディレクトリの内容が必要です。したがって、Maven 構成でそのディレクトリをリソースとして宣言します。
ここで切断が発生します: config ディレクトリ リソースの targetPath を "config" に設定すると、アセンブリ (アプリ アセンブラーではない) プラグインがパッケージ化のためにそれを取得するのは非常に簡単ですが、クラスパスの URL は異なります。展開されたアプリケーションと Eclipse の間: 展開されたアプリは URL がであると見なしますがclasspath:/default.properties
、Eclipse 内では URL はclasspath:/config/default.properties
です。targetPath を空 (直下にインストール) にするclasses
と、クラスパス URL は Eclipse とデプロイされた環境の間で一致しますが、アセンブリ プラグイン構成で構成データを選択する適切な方法はありません。
現時点では、2 番目のオプションを使用して、クラスではないconfig
すべてのものをディレクトリに配置します。classes
より良い解決策は、 Maven で と に似た別のクラスパス ディレクトリを作成することclasses
ですtest-classes
が、その方法がわかりません。
だから私は2つの質問があります:
- リソース、アセンブリ、およびアプリ アセンブラー プラグインに明らかな何かが欠けていますか?
config
そうでない場合は、デプロイされた環境でアプリアセンブラースクリプトによって追加されるのと同じ方法で、Maven/Eclipse 環境のクラスパスにディレクトリを追加するにはどうすればよいですか?
使用バージョン: Maven3、app-assemblyr 1.2.2、
unix - タグの使用Mavenプラグインアプリアセンブラーで
maven プラグイン appassemblyr を使用して UNIX スクリプトを生成しています。そのタグに、次のように sth を入れます。
ただし、結果のスクリプトは $1 $2 $3 "$@" を示しています。
最後の引数がどこから来たのかわからないため、最初の 3 つの引数を繰り返します。
java - MavenAppassemblerプラグイン-stdoutおよび/またはstderrリダイレクト
1つのJavaプロジェクトをMavenに移行し、シェル開始スクリプトを生成するためにAppassembler Mavenプラグイン(バージョン1.3)を使用しています。私の問題は、Javaプログラムのstdoutおよび/または出力をリダイレクトする方法ですか?このAppassemblerのpom.xml構成
生成:
パラメータープレースホルダー($ @)は、開始スクリプトで最後に生成されたトークンです。
java - MavenAppAssemblerがクラスを見つけられません
チュートリアルに従って既存のJava/Tomcatアプリを変更して、Herokuにデプロイしようとすると、AppAssemblerでエントリクラスが見つからないという問題が発生します。target / bin / webappを実行する(またはHerokuにデプロイする)と、Error: Could not find or load main class org.stopbadware.dsp.Main
ただし、実行java -cp target/classes:target/dependency/* org.stopbadware.dsp.Main
は正しく実行されます。pom.xmlの関連部分は次のとおりです。
私の推測でmvn package
は、AppAssemblerが正しいクラスパスを使用しない原因になっています。何か提案はありますか?
maven - JNI 用の dll を配置するように maven appassemblyr プラグインに指示するにはどうすればよいですか?
Java Native Interface を介して接続されたネイティブ ライブラリを含むライブラリに依存する Java アプリケーションをデプロイしています。ライブラリが正しくエクスポートされ、スクリプトがそれらをパスに追加して見つけられるように、これを考慮してアプリアセンブラープラグインを構成する方法を知りたいです。
要求された POM を以下に示します。これまでのところ、appassemblyr の使用について特別なことは何もありません。デフォルトのリポジトリ構造でプログラム開始メカニズムを構築します。
java-service-wrapper - appassemblyr-maven-plugin JSW - wrapper-java-mainclass の設定方法
Java-Service-Wrapper の使用を容易にするために appassemblyr-maven-plugin を使用しようとしています
私のセットアップは次のとおりです。
- JSW から WrapperListner を拡張して start/stop/controlEvent メソッドに完全にアクセスできるクラス MyServiceWrapper を実装しました。
- appassemblyr-maven-plugin を pom.xml に追加し、JSW を構成しました
MyServiceWrapper:
私のpom.xmlのappassemblyr-maven-plugin:
これにより、wrapper.conf と他の多くのファイルが生成されます。しかし、間違っている行が 1 つあり、それを正しく生成する方法がわかりません。
間違った行は次のとおりです。
それは次のようになります。
この行を手動で正しい言及された行に設定すると、機能します!
だから:この行を正しく生成する方法はありますか?
PS: pom.xml 内から JSW のログレベルを設定することは可能ですか?
maven - バッチ ファイルを生成するための appassemblyr-maven-plugin を使用したクラスパスの追加
私はモジョのアプリアセンブラーを使用しています。私がする必要があるのは、プロジェクトの特定のパス (たとえば%BASEDIR%\resources
) をクラスパスに追加する必要があることです。現在、クラスパスにのみ追加%REPO%
しています。pom.xml でどのような変更を行う必要がありますか。私はすでに以下のコードを提供しています。
出力バッチファイルには次のものが含まれます
私の最終的な結果はどうあるべきか...
上記の結果を達成するために pom.xml にどのような変更を組み込む必要がありますか?
maven - Intellij をセットアップして jar をホット アップデートし、Maven Appassemblyr を実行する
私はIntellijをセットアップして、mavenを使用してコマンドラインから繰り返し実行していることを自動的に実行しmvn package -DskipTests
たいと考えています. 理想的には、変更した jar 内のクラスをホット アップデートするだけです。
プロジェクト構造の Artifact タブで Intellij に jar を作成するように指示する方法を理解しましたが、手動で設定する代わりに、Intellij に pom からこの成果物情報をインポートさせることはできますか?
- pom の変更を自動インポートしますが、このアーティファクト情報をインポートすることはありません。
- これにより、maven が生成するものの正確な出力名を使用できるようになるため、コマンドラインまたは IDE のどちらから作業していても、1 つの出力セットで作業できます。(理由は後述)
Appassemblyrは追加のステップを追加します。これには、すべての依存関係をターゲット フォルダーにコピーし、スクリプトを生成することが含まれます。Intellij が Appassemblyr をトリガーできない場合、代わりに Appassemblyr がシンボリック リンクを使用できるのではないかと考えていました。jar が更新されると、実行可能なアプリ スクリプトはすぐにそのバージョンを使用します。または、最悪の場合、コマンドラインからこの特定のステップを実行するだけで済み、jar は既にビルドされています。
アップデート
それが役立つ場合は、次のように Appassemblyr を my で使用しますpom.xml
。
これを達成するための最良の方法についてのアドバイスをありがとう。
maven - バッチファイルの作成中にmojo appassemblyrプラグインを使用してクラスパスの場所を追加するにはどうすればよいですか
アプリケーション用の実行可能なバッチ/シェル スクリプトを作成するために、mojo の appassemblyr プラグインを使用しています。特定のディレクトリをクラスパスに追加する必要があるため、mojo のプラグインの pom.xml 構成でどのような変更を行う必要がありますか?
現在、以下のようにバッチファイルに必要なすべてのライブラリパスを使用してクラスパスが生成されます
私がする必要があるのは、次のような別の変数MY_PATH
を追加して、以下のようにクラスパスに追加することだけです
さらに追加するには、タグ<configurationDirectory>
がありますが、別のディレクトリに既に提供しています。さらにディレクトリを追加する必要がある場合、解決策は何ですか?
どうすれば達成できますか?以下はpom.xmlです