私はWeld-SE(Java SE)で遊んでいましたが、クラスパスに多数のJARがあると、JVMの起動時間が数秒になることに気付きました。クラスパスのスキャンをWeldで制御できますか?
Apache AntやAspectJのように、スキャンパスをパッケージパターンやパスパターンとして指定/制限する方法はありませんか?
PS:溶接フォーラムの登録だけでは動作しません - それは良い質問「あなたのパスワードは自明である」
私はWeld-SE(Java SE)で遊んでいましたが、クラスパスに多数のJARがあると、JVMの起動時間が数秒になることに気付きました。クラスパスのスキャンをWeldで制御できますか?
Apache AntやAspectJのように、スキャンパスをパッケージパターンやパスパターンとして指定/制限する方法はありませんか?
PS:溶接フォーラムの登録だけでは動作しません - それは良い質問「あなたのパスワードは自明である」
を言い続け、私はそれが可能だとは思いません。各アーカイブは、specによってbeans.xml
のためにスキャンされます。溶接1.1.0以降で
、それはWeld reference documentationに応じて可能です:
<beans xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:weld="http://jboss.org/schema/weld/beans"
xsi:schemaLocation="
http://java.sun.com/xml/ns/javaee http://docs.jboss.org/cdi/beans_1_0.xsd
http://jboss.org/schema/weld/beans http://jboss.org/schema/weld/beans_1_1.xsd">
<weld:scan>
<weld:exclude name="mypackage.MyClass"/>
</weld:scan>
</beans>
することができますCDI 1.1で。 1番目の回答はうまくいきますが、このスニペットはどのプロバイダでも使用できます。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
version="1.1" bean-discovery-mode="all">
<scan>
<exclude name="my.cool.package" />
<!-- you can exclude with condition -->
<exclude name="my.cool.package.for.jodatime" />
<if-class-not-available name="org.joda.time.LocalDate"/>
</exclude>
</scan>
</beans>
@Bozho:以前のものは完全に有効です。 @ Riduidelありがとう。 – Riduidel
私はそれを削除することを考えましたが、CDI仕様によれば方法はありません。溶接は1つの実装に過ぎません。私はそれが実際に最も適用可能なものであるので、他の答えをupvotedしています。 – Bozho
実際、私は説明のために非標準的な面を忘れてしまった。 – Riduidel