2017-06-26 4 views
1

"ybackofficeテンプレート付きant extgen"を使用して1つのバックオフィス拡張を作成した後。 そして、私はこのバックオフィスの拡張機能にjrebelを追加したいが、コードを変更するとリロードはしない。 の.jarパッケージとしてパッケージバックオフィスの拡張子がrebel.xmlファイルが含まれていると、あなたは.javaファイル内のコードの変更を行う場合は、新しい.classファイルがで生成されているのであれば、deployment.ThanksHybrisバックオフィス拡張でjrebelを設定するには?

答えて

1

チェックのための時間を節約するために、問題を解決するために私を助けてくださいrebel.xmlで定義されている$PLATFORM_HOME/bin/custom/$EXTENSION_NAME/backoffice/classesディレクトリです。 documentationポータルから

コピー&ペースト:

バックオフィスの拡張JARファイルはrebel.xmlと呼ばれる記述子ファイルを必要としてパッケージ化されている。このXMLファイルは、このJARのファイル.classがそのフォルダにあることをJRebelに伝えます。これを実現するには、リロードするすべての拡張機能に対して以下を実行する必要があります。

IDE経由で再コンパイルするには、コンパイル出力をantビルドで実際にコンパイルする場所に設定します。バックオフィス拡張の場合、これは$PLATFORM_HOME/bin/custom/$EXTENSION_NAME/backoffice/classesになります。

$EXTENSION_NAME/backoffice/resourcesで次rebel.xmlを作成します。編集$EXTENSION_NAME/buildcallbacks.xml

<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.zeroturnaround.com" xsi:schemaLocation="http://www.zeroturnaround.com http://update.zeroturnaround.com/jrebel/rebel-2_1.xsd"> 
    <classpath> 
    <!-- Make sure to replace $PLATFORM_HOME and $EXTENSION_NAME with your concrete values --> 
    <dir name="$PLATFORM_HOME/bin/custom/$EXTENSION_NAME/backoffice/classes"/> 
    </classpath> 
</application> 

をビルドコールバックの前に次の行を追加します。

<macrodef name="$EXTENSION_NAME_before_build"> 
    <sequential> 
    <mkdir dir="${ext.$EXTENSION_NAME.path}/backoffice/classes" /> 
     <copy file="${ext.$EXTENSION_NAME.path}/backoffice/resources/rebel.xml" todir="${ext.$EXTENSION_NAME.path}/backoffice/classes/" failonerror="false" /> 
    </sequential> 
</macrodef> 

これはrebel.xmlがコンパイル拡張JARにバンドルされていることを確認しますビルド時のファイル。

IDEからクラスを変更する場合は、クラスを再コンパイルするだけです(正しいコンパイル出力を設定した後、antビルドまたはIDE経由でクラスを再コンパイルしてください)。変更された.classファイルは、JRebelによって取得され、即座に再ロードされます。

関連する問題