Maven Vaadin Widgetset.gwt.xml继承编译时自动删除的标记

Maven Vaadin Widgetset.gwt.xml继承编译时自动删除的标记,maven,vaadin,maven-plugin,vaadin7,vaadin8,Maven,Vaadin,Maven Plugin,Vaadin7,Vaadin8,最近我们将Vaadin 7更新为Vaadin 8。我们的一个组件不起作用,今天分析问题时,我发现这是由于仍然是Vaadin 7,并且存在不匹配。因此,我将组件更新为Vaadin 8(尽管目前仍在使用所有.v7库,并在UI类上添加了@Widgetset(“com.Vaadin.v7.Vaadin7WidgetSet”),以及添加了Vaadin兼容客户端编译的maven依赖项。 我们对该组件的测试再次正常工作,我将这个新版本部署到了Nexus中(需要将所有Vaadin 7和Viritin组件实际更新

最近我们将Vaadin 7更新为Vaadin 8。我们的一个组件不起作用,今天分析问题时,我发现这是由于仍然是Vaadin 7,并且存在不匹配。因此,我将组件更新为Vaadin 8(尽管目前仍在使用所有
.v7
库,并在UI类上添加了
@Widgetset(“com.Vaadin.v7.Vaadin7WidgetSet”)
,以及添加了
Vaadin兼容客户端编译的
maven依赖项。
我们对该组件的测试再次正常工作,我将这个新版本部署到了Nexus中(需要将所有Vaadin 7和Viritin组件实际更新为Vaadin 8)

现在在我们的主要项目中(在这里我们使用这个组件)我已经在
pom.xml
中更新了它的版本,但是运行它时出现了与之前相同的错误,我将
@Widgetset
添加到组件的UI类中。我们的主项目已经有了一个带有我们自定义Widgetset的
@Widgetset
。我想我只需将
com.vaadin.v7.Vaadin7WidgetSet
添加为
to这是我们主项目的
Widgetset.gwt.xml
文件,但当我执行并保存时,一些Maven插件自动将其重置为原来的状态

这就是我们的
Widgetset.gwt.xml
当前的样子:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.5.1//EN"
        "http://google-web-toolkit.googlecode.com/svn/tags/2.5.1/distro-source/core/src/gwt-module.dtd">
<module>
    <inherits name="com.vaadin.DefaultWidgetSet" />

    <stylesheet src="resetbuttonfortextfield/styles.css" />
</module>
我假设带有
更新widgetset
vaadin maven插件
负责删除
widgetset.gwt.xml
中的
-标记,但我不能完全确定。总体而言,我对maven还是比较陌生。
但是如果我是对的,我如何修改
pom.xml
,这样它也会添加我需要的
-标记

TL;DR:如何在我的
Widgetset.gwt.xml
中永久添加一个额外的
-标记(在我们的Maven
pom.xml
中没有插件覆盖这些手动更改)


编辑:如果我注释掉
updatewidgetset
,则
widgetset.gwt.xml
不再更新,但它在
pom.xml
中给出了一个错误:

GWT Module com.vaadin.v7.Vaadin7WidgetSet not found in project sources or resources. (com.vaadin:vaadin-maven-plugin:8.0.6:compile:default:process-classes)

org.apache.maven.plugin.MojoExecutionException: GWT Module com.vaadin.v7.Vaadin7WidgetSet not found in project sources or resources.
    at org.codehaus.mojo.gwt.shell.CompileMojo.compilationRequired(CompileMojo.java:701)
    at org.codehaus.mojo.gwt.shell.CompileMojo.compile(CompileMojo.java:567)
    at org.codehaus.mojo.gwt.shell.CompileMojo.doExecute(CompileMojo.java:435)
    at org.codehaus.mojo.gwt.shell.AbstractGwtShellMojo.execute(AbstractGwtShellMojo.java:182)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
    at org.eclipse.m2e.core.internal.embedder.MavenImpl.execute(MavenImpl.java:331)
    at org.eclipse.m2e.core.internal.embedder.MavenImpl$11.call(MavenImpl.java:1362)
    at org.eclipse.m2e.core.internal.embedder.MavenImpl$11.call(MavenImpl.java:1)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:176)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:112)
    at org.eclipse.m2e.core.internal.embedder.MavenImpl.execute(MavenImpl.java:1360)
    at org.eclipse.m2e.core.project.configurator.MojoExecutionBuildParticipant.build(MojoExecutionBuildParticipant.java:52)
    at com.vaadin.integration.eclipse.maven.VaadinMojoExecutionBuildParticipant.build(VaadinMojoExecutionBuildParticipant.java:87)
    at org.eclipse.m2e.core.internal.builder.MavenBuilderImpl.build(MavenBuilderImpl.java:137)
    at org.eclipse.m2e.core.internal.builder.MavenBuilder$1.method(MavenBuilder.java:172)
    at org.eclipse.m2e.core.internal.builder.MavenBuilder$1.method(MavenBuilder.java:1)
    at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod$1$1.call(MavenBuilder.java:115)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:176)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:112)
    at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod$1.call(MavenBuilder.java:105)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:176)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:151)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:99)
    at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod.execute(MavenBuilder.java:86)
    at org.eclipse.m2e.core.internal.builder.MavenBuilder.build(MavenBuilder.java:200)
    at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:734)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:205)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:245)
    at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:300)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:303)
    at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:359)
    at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:382)
    at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:144)
    at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:235)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Caused by: org.codehaus.mojo.gwt.utils.GwtModuleReaderException: GWT Module com.vaadin.v7.Vaadin7WidgetSet not found in project sources or resources.
    at org.codehaus.mojo.gwt.AbstractGwtModuleMojo.readModule(AbstractGwtModuleMojo.java:209)
    at org.codehaus.mojo.gwt.GwtModule.getLocalInherits(GwtModule.java:189)
    at org.codehaus.mojo.gwt.GwtModule.getInherits(GwtModule.java:149)
    at org.codehaus.mojo.gwt.GwtModule.getEntryPoints(GwtModule.java:114)
    at org.codehaus.mojo.gwt.shell.CompileMojo.compilationRequired(CompileMojo.java:615)
    ... 36 more

这已经是导致自动删除
的正确方向上的一大步。如果我理解正确,似乎我需要找出相关的依赖项,并将其添加到
pom.xml

好的,修复了。我在这篇文章中遇到了其他人将Vaadin 7迁移到8,并且在WidgeSet:

第一个回答(我在这里引用)解决了我的问题:

您好,很高兴知道您正在享受新版本:)请检查以下内容:

  • 您必须用
    vaadin兼容服务器
    替换
    vaadin服务器
    依赖项
  • 如果您使用的是默认widgetset(您不是自己编译):
    • vaadin客户端编译的
      依赖项替换为
      vaadin兼容客户端编译的
    • @Widgetset(“com.vaadin.v7.Vaadin7WidgetSet”)
      添加到UI实现中
  • 如果您使用的是自定义widgetset:
    • vaadin兼容客户端
      替换
      vaadin客户端
      依赖项
    • 重新编译它

所以我在我们的Widgetset的
pom.xml
中用
vaadin compatibility client
更改了
vaadin client
,现在
-标记仍然存在。

您尝试过吗,(只是想知道)@petey啊,没有。不是为了这个组件。我想我的同事在我们将主要项目迁移到Vaadin 8时使用过它,不过现在我看到了。。在该git的自述文件中,您将其链接到“工具没有,您需要”处,但我应该手动将
vaadin客户端
vaadin客户端编译的
更改为其
兼容性
版本。当我有时间的时候,我可能会回到一个旧的git标签,并尝试它的组件,看看我的手动更改有什么不同。
<?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">
    <parent>
      <groupId>our.project</groupId>
      <artifactId>web-parent</artifactId>
      <version>develop-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

  <artifactId>web2-widgetset</artifactId>
  <name>web2-widgetset</name>
  <packaging>jar</packaging>

  <dependencies>
    <!-- Versions for these are configured in the parent POM -->
    <dependency>
      <groupId>com.vaadin</groupId>
      <artifactId>vaadin-server</artifactId>
    </dependency>
    <dependency>
      <groupId>com.vaadin</groupId>
      <artifactId>vaadin-client</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>com.vaadin</groupId>
      <artifactId>vaadin-client-compiler</artifactId>
      <scope>provided</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>com.vaadin</groupId>
        <artifactId>vaadin-maven-plugin</artifactId>
        <configuration>
          <extraJvmArgs>-Xmx1024M -Xss2048k</extraJvmArgs>
          <webappDirectory>${basedir}/target/classes/VAADIN/widgetsets</webappDirectory>
          <draftCompile>true</draftCompile>
          <compileReport>false</compileReport>
          <!-- Change to PRETTY (or possibly DETAILED) to get unobfuscated client side stack traces. A better approach for debugging is to use Super Dev  Mode -->
          <style>OBF</style>
          <strict>true</strict>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>update-widgetset</goal>
              <goal>compile</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <executions>
          <execution>
            <goals>
              <goal>jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
          <archive>
            <manifestEntries>
              <Vaadin-Package-Version>1</Vaadin-Package-Version>
              <Vaadin-Widgetsets>our.project.Widgetset</Vaadin-Widgetsets>
            </manifestEntries>
          </archive>
          <!-- Exclude some unnecessary files generated by the GWT compiler. -->
          <excludes>
            <exclude>VAADIN/gwt-unitCache/**</exclude>
            <exclude>VAADIN/widgetsets/WEB-INF/**</exclude>
          </excludes>
        </configuration>
      </plugin>
    </plugins>
  </build>

</project>
GWT Module com.vaadin.v7.Vaadin7WidgetSet not found in project sources or resources. (com.vaadin:vaadin-maven-plugin:8.0.6:compile:default:process-classes)

org.apache.maven.plugin.MojoExecutionException: GWT Module com.vaadin.v7.Vaadin7WidgetSet not found in project sources or resources.
    at org.codehaus.mojo.gwt.shell.CompileMojo.compilationRequired(CompileMojo.java:701)
    at org.codehaus.mojo.gwt.shell.CompileMojo.compile(CompileMojo.java:567)
    at org.codehaus.mojo.gwt.shell.CompileMojo.doExecute(CompileMojo.java:435)
    at org.codehaus.mojo.gwt.shell.AbstractGwtShellMojo.execute(AbstractGwtShellMojo.java:182)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
    at org.eclipse.m2e.core.internal.embedder.MavenImpl.execute(MavenImpl.java:331)
    at org.eclipse.m2e.core.internal.embedder.MavenImpl$11.call(MavenImpl.java:1362)
    at org.eclipse.m2e.core.internal.embedder.MavenImpl$11.call(MavenImpl.java:1)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:176)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:112)
    at org.eclipse.m2e.core.internal.embedder.MavenImpl.execute(MavenImpl.java:1360)
    at org.eclipse.m2e.core.project.configurator.MojoExecutionBuildParticipant.build(MojoExecutionBuildParticipant.java:52)
    at com.vaadin.integration.eclipse.maven.VaadinMojoExecutionBuildParticipant.build(VaadinMojoExecutionBuildParticipant.java:87)
    at org.eclipse.m2e.core.internal.builder.MavenBuilderImpl.build(MavenBuilderImpl.java:137)
    at org.eclipse.m2e.core.internal.builder.MavenBuilder$1.method(MavenBuilder.java:172)
    at org.eclipse.m2e.core.internal.builder.MavenBuilder$1.method(MavenBuilder.java:1)
    at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod$1$1.call(MavenBuilder.java:115)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:176)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:112)
    at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod$1.call(MavenBuilder.java:105)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:176)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:151)
    at org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:99)
    at org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod.execute(MavenBuilder.java:86)
    at org.eclipse.m2e.core.internal.builder.MavenBuilder.build(MavenBuilder.java:200)
    at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:734)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:205)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:245)
    at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:300)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:303)
    at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:359)
    at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:382)
    at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:144)
    at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:235)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Caused by: org.codehaus.mojo.gwt.utils.GwtModuleReaderException: GWT Module com.vaadin.v7.Vaadin7WidgetSet not found in project sources or resources.
    at org.codehaus.mojo.gwt.AbstractGwtModuleMojo.readModule(AbstractGwtModuleMojo.java:209)
    at org.codehaus.mojo.gwt.GwtModule.getLocalInherits(GwtModule.java:189)
    at org.codehaus.mojo.gwt.GwtModule.getInherits(GwtModule.java:149)
    at org.codehaus.mojo.gwt.GwtModule.getEntryPoints(GwtModule.java:114)
    at org.codehaus.mojo.gwt.shell.CompileMojo.compilationRequired(CompileMojo.java:615)
    ... 36 more