0

なぜそれは私が持っているのに

  1. プロジェクトの EJB ファセットで JBoss EJB デプロイメント記述子への適切なパスを設定する

  2. jboss-ejb3.xmlIntellij のアーティファクトに追加された Patrac-web:war が展開された <output root>/WEB-INF

pom.xml に最も単純な変更を加えるたびに、Intellij は から次のエントリを削除します${PROJECT_DIR}/.idea/artifacts/Patrac_web_war_exploded.xml

<element id="file-copy" path="$PROJECT_DIR$/Patrac-ejb/src/main/resources/META-INF/jboss-ejb3.xml" />

その結果、jboss-ejb3.xmlターゲット ディレクトリにコピーされませんか?

Intellijに変更を加えるたびにpom.xml、POM を使用して展開構成を「リロード」し、IDE 内で行った設定を上書きするようです。おそらく、ソース ディレクトリからターゲット ディレクトリにpom.xmlコピーするためのエントリがないため、Intellij IDE で行った設定は、Intellij が「リロード」されるたびに消え続けます。jboss-ejb3.xml私の勝手な憶測ですが、こんな感じです。

pom.xmlもしそうなら、これを止めるにはどのような変更を加える必要がありますか?

4

2 に答える 2

2

プロジェクトが Maven から (再) インポートされると、IDEA は、IDEA から「ビルド」を呼び出すと、Maven の「パッケージ」ゴールと同じ結果を生成するように構成します。jboss-ejb3.xml を WEB-INF にコピーする必要がある場合は、「src/main/webapp/WEB-INF」ディレクトリの下に置くだけで、Maven と IDEA によってコピーされます。

于 2013-02-06T08:17:37.650 に答える
0

jboss-ejb3.xmlMETA-INF に残したかったので、私が試したNikのソリューションの代替案を次に示します。Web リソースとして扱い、WEB-INF にコピーする方法が示されている Maven のドキュメントを参照して、maven-war-plugin の構成に以下を追加したところ、問題は解決しました。jboss-ejb3.xmlまあ、ちょっと。しかし、そうではありません。

<webResources>
    <resource>
        <directory>../Patrac-ejb/src/main/resources/META-INF</directory>
        <includes>
            <include>jboss-ejb3.xml</include>
        </includes>
        <targetPath>WEB-INF</targetPath>
    </resource>
</webResources>

このようにすることで、IDEA ファセット構成設定をいじる必要がなくなりましたが (Maven は IDEA ではなくファイルをコピーするように構成されていたため)、新しい問題が発生jboss-ejb3.xmlしました。もう 1 つは EJB JAR 内 (META-INF) にあります。明白な結果はありませんでしたが (アプリケーションは問題なく動作しました)、EJB JAR 内に記述子の重複コピーを配置しないことを好みました。

Maven EJB プラグインのドキュメントを使用して、maven-ejb-plugin 構成に除外を追加しようとしました。

<configuration>
    <ejbVersion>3.1</ejbVersion>
    <excludes>
        <exclude>**/jboss-ejb3.xml</exclude>
    </excludes>
</configuration>

これにより、 の重複コピーが EJB JAR META-INF に表示されるのを防ぐことができたはずですがjboss-ejb3.xml、うまくいきませんでした。「maven-ejb-plugin excludes not working correctly」のさまざまなバリエーションを無益にグーグル検索した後、あきらめました。

除外を機能させることができた場合、jboss-ejb3.xmlsrc/main/webapp/WEB-INF に移動するよりもこのソリューションを優先したでしょう。このソリューションは少し複雑ですが (2 つの POM で追加の Maven 構成設定が必要です)、EJBに関連する記述子は、EJB モジュールに残ります。

除外の問題を解決できるまで、Nikのソリューションを使用することにしました。

于 2013-02-06T20:35:04.930 に答える