0

JBoss にデプロイされる Web アプリを作成するプロジェクトがあります。Maven、war のパッケージ化など。現在、クライアントには、アプリのコマンドライン インターフェイスを含める必要があり、ユーザーは war 内のどこかで main メソッドを起動できる必要があります (アプリが現在 JBoss にデプロイされているかどうか)。

私はちょっと途方に暮れています。私はここで検索し、Googleでさまざまな検索を行い、Jetty / Jenkinsの例を見つけましたが、これらの例には、jarとして実行するために必要なクラスファイルが1つしかないようです。

現在、プロジェクトの戦争構造は次のとおりです。

-resources
-META-INF
---MANIFEST.MF, et al
-WEB-INF
---web.xml, classes(com/*), lib, et al

Java -jar を使用して呼び出したいクラスの Main-Class を含む MANIFEST.MF ファイルを Maven にセットアップさせています。しかし、戦争の構造は、次のような「通常の」ジャー構造に従う必要があるようです。

-resources
-com/*/main.class
-META-INF
---MANIFEST.MF, et al
-WEB-INF
---web.xml, classes(com/*), lib, et al

しかし、main.class はアプリ内の他のクラスに依存するため、jar 機能と戦争のために、両方の場所にますます多くのコードを配置していることに気付きます。

わかりましたので、Maven + antrun を使用して、クラス ファイルを WEB-INF/classes から war ファイルのルートにコピーしました。現在、クラスが依存する jar があります (たとえば、log4j)。だから今、私はantrunを使って必要なjarファイルを解凍し、それらのクラスファイルを戦争のルートに配置していることに気づきました...

これは...狂っているようです。(より良い)方法はありますか?

CLI機能はデータベースにアクセスする必要があるため、残念ながら多くのクラスが必要です (すべての DAO/EBO/構成クラス)。

4

0 に答える 0