Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven &引用;目标更新主题需要Vaadin 7.1或更高版本;_Maven_Intellij Idea_Vaadin_Vaadin7 - Fatal编程技术网

Maven &引用;目标更新主题需要Vaadin 7.1或更高版本;

Maven &引用;目标更新主题需要Vaadin 7.1或更高版本;,maven,intellij-idea,vaadin,vaadin7,Maven,Intellij Idea,Vaadin,Vaadin7,我想做的就是扩展现有的Vaadin主题“Valo” 我用的是IntelliJ和Maven 在我的UI类中: @Theme("myTheme") ... public class MyUI extends UI { ... } 我在src/main/webapp/VAADIN/themes/myTheme中添加了styles.scs,其中包含以下内容: $v-font-size: 12px; $v-unit-size: 26px; $v-unit-size--small: 20px;

我想做的就是扩展现有的Vaadin主题“Valo”

我用的是IntelliJ和Maven

在我的UI类中:

@Theme("myTheme")
...
public class MyUI extends UI {
    ...
}
我在src/main/webapp/VAADIN/themes/myTheme中添加了styles.scs,其中包含以下内容:

$v-font-size: 12px;

$v-unit-size: 26px;
$v-unit-size--small: 20px;
$v-unit-size--tiny: 18px;

$v-layout-margin-top: 18px;
$v-layout-margin-right: 18px;
$v-layout-margin-bottom: 18px;
$v-layout-margin-left: 18px;
$v-layout-spacing-vertical: 7px;
$v-layout-spacing-horizontal: 6px;

@import "../valo/valo";
在我的pom.xml中,我包含了以下依赖项:

<dependency>
  <groupId>com.vaadin</groupId>
  <artifactId>vaadin-themes</artifactId>
  <version>${vaadin.version}</version>
</dependency>
编译项目时,我遇到以下错误:

[ERROR]无法执行目标com.vaadin:vaadin maven plugin:7.6.0.alpha2:update
项目分类工具webapp上的e主题(默认):目标更新主题
equires Vaadin 7.1或更高版本->[Help 1]

TL;DR

确保您具有正确的依赖关系

<dependency>
    <groupId>com.vaadin</groupId>
    <artifactId>vaadin-shared</artifactId>
    <version>${vaadin.version}</version>
</dependency>
简而言之,它遍历所有依赖项,查找com.vaadin:vaadin与特定版本共享。它不检查实际的jar,而是检查它们的maven元数据。这意味着您可能已经拥有了正确的JAR,例如:

<dependency>
    <groupId>vaadin-shared-7.7.12</groupId>
    <artifactId>vaadin-shared-7.7.12</artifactId>
    <version>0</version>
    <scope>system</scope>
    <systemPath>lib/vaadin-shared-7.7.12.jar</systemPath>
</dependency>

vaadin-shared-7.7.12
vaadin-shared-7.7.12
0
系统
lib/vaadin-shared-7.7.12.jar
但是签入Vaadin maven插件仍然会失败。你会得到一个例外

目标更新主题需要Vaadin 7.1或更高版本

反之亦然-您可以“欺骗”具有以下特性的插件:

<dependency>
    <groupId>com.vaadin</groupId>
    <artifactId>vaadin-shared</artifactId>
    <version>${vaadin.version}</version>
    <scope>system</scope>
    <systemPath>lib/fake.jar</systemPath>
</dependency>

com.vaadin
瓦丁共享
${vaadin.version}
系统
lib/fake.jar
(其中fake.jar不是vaadin shared.jar),您将通过检查(主题编译将无法工作,因为您需要任何一种方式的类)。
因此,该异常的解决方案是确保使用正确的版本共享正确的vaadin。

不按“需要更长时间”中的方式加载,并且所有内容都未设置样式?你有错误吗?如果您的VaadinServlet在生产模式下运行,则必须将styles.CSS安装到位。在调试模式下,它将动态编译SCS-但您必须了解如何为您的胖jar/war编译主题。我已经更新了我的问题,并尝试更具体。我不使用maven,因此无法测试,但该错误也可能是误报。您可能想尝试7.5.10-而且当前的7.6是Beta2。您的Maven属性
${vaadin.version}
定义在哪里?您好,您是否设法解决了此错误?我也面临同样的问题
protected boolean isAtLeastVaadinVersion(int major, int minor) {
    // find "vaadin-shared" and check its version
    for (Artifact artifact : getProjectArtifacts()) {
        if (VAADIN_GROUP_ID.equals(artifact.getGroupId())
                && "vaadin-shared".equals(artifact.getArtifactId())) {
            // TODO this is an ugly hack because Maven does not tolerate
            // version numbers of the form "7.1.0.beta1"
            String artifactVersion = artifact.getVersion();
 (...)
<dependency>
    <groupId>vaadin-shared-7.7.12</groupId>
    <artifactId>vaadin-shared-7.7.12</artifactId>
    <version>0</version>
    <scope>system</scope>
    <systemPath>lib/vaadin-shared-7.7.12.jar</systemPath>
</dependency>
<dependency>
    <groupId>com.vaadin</groupId>
    <artifactId>vaadin-shared</artifactId>
    <version>${vaadin.version}</version>
    <scope>system</scope>
    <systemPath>lib/fake.jar</systemPath>
</dependency>