2

シンプルなテーマを作成しようとしています (カメレオンといくつかのカスタム css と画像などを使用)。

問題は、それを Maven プロジェクトにラップし、依存関係として他の Vaadin プロジェクトから参照したいので、すべての Vaadin アプリを同じ方法でテーマ化するか、親プロジェクトの依存関係として持つことで、アプリ全体が同じようにスタイルされ、さまざまな顧客向けにスキンを変更できます。

他のプロジェクトから使用できるように、テーマ プロジェクトをパッケージ化して展開する方法がわかりません。私はそれを戦争プロジェクトにする必要があります - しかし、他のプロジェクトはどのように「それを達成する」のでしょうか? 彼らは自分の VAADIN/themes ディレクトリの下でテーマを探します - そこに (どういうわけか) コピーするのではなく、1 つのコピーを参照させるにはどうすればよいでしょうか?

4

2 に答える 2

0

私は同じ問題を抱えていました。戦争オーバーレイを使用して解決しました。

クライアントの構成プロジェクトで拡張された親プロジェクトに基本テーマがあります。ここで説明されているように、構成プロジェクトは単純にランタイム依存関係として war を使用し、親プロジェクトのファイルはオーバーレイされます。

クライアントのプロジェクトに依存関係を追加するだけです:

<dependency>
    <groupId>com.mygroup</groupId>
    <artifactId>my-parent-project</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <type>war</type>
    <scope>runtime</scope>
</dependency>

親プロジェクトのスタイルをクライアントのテーマの styles.css ファイルにインポートします。

@import "../parent-theme/styles.css"

クライアントのスタイルを追加します。

親プロジェクトのクラスを使用する必要がある場合attachClassesは、maven-war-plugin 構成でプロパティを true に設定し、デバッグに必要な場合は maven-source-plugin を使用してソースをアタッチすることもできます。

<plugin>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.1.1</version>
    <configuration>
        <attachClasses>true</attachClasses>
    </configuration>
</plugin>

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-source-plugin</artifactId>
    <version>2.1.2</version>
    <executions>
        <execution>
            <id>attach-sources</id>
            <goals>
                <goal>jar</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <attach>true</attach>
    </configuration>
</plugin>

それらをクライアントのプロジェクトに含めます。

<dependency>
    <groupId>com.mygroup</groupId>
    <artifactId>my-parent-project</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <classifier>classes</classifier>
    <type>jar</type>
    <scope>compile</scope>
</dependency>
于 2012-07-03T07:19:43.297 に答える
0

私は方法を見つけたと思います.1つの共有インスタンスを作成するのではなく、テーマcssを複数のwarプロジェクトにコピーするため、それが最善の方法であるかどうかはわかりませんが、プロジェクト間でURLを共有するための巧妙なサーバー構成を行うことが唯一の方法です.か何か。

http://www.ensor.cc/2011/06/mavens-war-overlay-what-are-war.html

于 2012-07-02T20:30:00.910 に答える