2016-12-14 24 views
0

私は2つのプロジェクトを持っているとしましょう。 CompanyAppおよびCompanyVaadinThemesVaadinで外部テーマをインポートしてアノテーションで使用するにはどうすればよいですか?

CompanyAppは通常のVaadin 7.7.3アプリです。 CompanyVaadinThemesisちょうどVaadin 7.7.3テーマがコンパイルされています。

CompanyVaadinThemes.jar

source/main/resources/VAADIN/themes/mytheme 
    mytheme.scss 
    styles.scss 
    ... 

CompanyApp.war

pom.xml 
    ... 
    <dependency> 
     <groupId>com.vaadin</groupId> 
     <artifactId>vaadin-themes</artifactId> 
     <version>${vaadin.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>com.company</groupId> 
     <artifactId>company-vaadin-themes</artifactId> 
     <version>1.0-SNAPSHOT</version> 
    </dependency> 


... 

UI.java 

    @SpringUI 
    @Theme("mytheme") 
    public class CompanyUI extends UI { 

しかし、私はこの作業を行う方法を見つけ出すように見えることはできません。 CompanyVaadinThemes.jarからCompanyAppのメインコードに実際のコードをコピーしても問題ありません。私は "mytheme"、 "valo"などを使うことができます。

しかし、私は実際のテーマを別のプロジェクトに保存して、今後のプロジェクトでは単純に依存性として追加することができます。ここで

はCompanyVaadinThemesにポンポンです:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.company</groupId> 
    <artifactId>company-vaadin-themes</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <java.version>1.8</java.version> 
     <vaadin.version>7.7.3</vaadin.version> 
     <vaadin.theme>mytheme</vaadin.theme> 
     <vaadin.plugin.version>${vaadin.version}</vaadin.plugin.version> 
    </properties> 

    <repositories> 
     <repository> 
      <id>vaadin-addons</id> 
      <url>http://maven.vaadin.com/vaadin-addons</url> 
     </repository> 
     <repository> 
      <id>com-vaadin-prereleases</id> 
      <url>https://maven.vaadin.com/vaadin-prereleases</url> 
     </repository> 
    </repositories> 

    <dependencies> 
     <dependency> 
      <groupId>com.vaadin</groupId> 
      <artifactId>vaadin-server</artifactId> 
      <version>${vaadin.version}</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>com.vaadin</groupId> 
      <artifactId>vaadin-themes</artifactId> 
      <version>${vaadin.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>javax.servlet-api</artifactId> 
      <version>3.0.1</version> 
      <scope>provided</scope> 
     </dependency> 
    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.2</version> 
       <configuration> 
        <source>${java.version}</source> 
        <target>${java.version}</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>com.vaadin</groupId> 
       <artifactId>vaadin-maven-plugin</artifactId> 
       <version>${vaadin.version}</version> 
      </plugin> 

     </plugins> 
    </build> 
</project> 

答えて

1

VAADINフォルダには、あなたのjarファイルのルートにする必要があります:

VAADIN/themes/mytheme 
    mytheme.scss 
    styles.scss 
+0

それはまさにそれでした。私は間違った場所にVAADINフォルダを持っていました。私はresourcesフォルダーに入れます。 Dur。ありがとう。 – cbmeeks

0

カスタムテーマは、MavenのプロジェクトにWebContentフォルダーまたはSRC /メイン/ webappの下のEclipseプロジェクトでは、WebアプリケーションのVAADIN /テーマフォルダに配置されています。この場所は固定されています。アプリケーションで使用するテーマごとにテーマフォルダを用意する必要がありますが、アプリケーションでは1つのテーマ以上はほとんど必要ありません。フォルダに置いた後は、@ Teheme( "your_theme_goes_here")アノテーションで簡単に呼び出すことができます。 また、再コンパイルして、変更を効率的に処理するために「クリーンアップ」と「ビルド」を実行してください。あなたのテーマで

+0

はい、私はカスタムテーマを作成する方法を知っています。私が求めているのは、外部のJarファイルのような外部ソースからそれらをどのように使用するのかです。 (可能であれば) – cbmeeks

関連する問題