web-dev-qa-db-ja.com

WSDLファイルから生成しようとしたときのMavenのトラブル

Wsdlファイルからソースを生成しようとしていますが、pom.xmlで問題が発生していると思われるエラーが発生し続けますか?以下は、pomとpomファイルから取得したエラーです。また、「mvn clean install」でプロジェクトをビルドできません。本当の原因がないのにエラーが出るようです。

タグの生成時のエラー:

Execution default of goal org.jvnet.jaxb2.maven2:maven-jaxb2-plugin:0.12.3:generate failed: A required class was missing while executing org.jvnet.jaxb2.maven2:maven-jaxb2-plugin:0.12.3:generate: com/Sun/codemodel/CodeWriter
-----------------------------------------------------
realm =    plugin>org.jvnet.jaxb2.maven2:maven-jaxb2-plugin:0.12.3-715230752
strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
urls[0] = file:/C:/Users/Windows/.m2/repository/org/jvnet/jaxb2/maven2/maven-jaxb2-plugin/0.12.3/maven-jaxb2-plugin-0.12.3.jar
urls[1] = file:/C:/Users/Windows/.m2/repository/org/jvnet/jaxb2/maven2/maven-jaxb2-plugin-core/0.12.3/maven-jaxb2-plugin-core-0.12.3.jar
urls[2] = file:/C:/Users/Windows/.m2/repository/org/slf4j/slf4j-api/1.7.7/slf4j-api-1.7.7.jar
urls[3] = file:/C:/Users/Windows/.m2/repository/org/Apache/commons/commons-lang3/3.2.1/commons-lang3-3.2.1.jar
urls[4] = file:/C:/Users/Windows/.m2/repository/com/Sun/org/Apache/xml/internal/resolver/20050927/resolver-20050927.jar
urls[5] = file:/C:/Users/Windows/.m2/repository/junit/junit/4.8.1/junit-4.8.1.jar
urls[6] = file:/C:/Users/Windows/.m2/repository/org/codehaus/plexus/plexus-utils/1.5.15/plexus-utils-1.5.15.jar
urls[7] = file:/C:/Users/Windows/.m2/repository/org/jvnet/jaxb2/maven2/maven-jaxb22-plugin/0.12.3/maven-jaxb22-plugin-0.12.3.jar
urls[8] = file:/C:/Users/Windows/.m2/repository/org/glassfish/jaxb/jaxb-runtime/2.2.11/jaxb-runtime-2.2.11.jar
urls[9] = file:/C:/Users/Windows/.m2/repository/org/glassfish/jaxb/jaxb-xjc/2.2.11/jaxb-xjc-2.2.11.jar
urls[10] = file:/C:/Users/Windows/.m2/repository/org/Apache/maven/plugin-tools/maven-plugin-annotations/3.2/maven-plugin-annotations-3.2.jar
Number of foreign imports: 5
import: Entry[import org.sonatype.plexus.build.incremental from realm ClassRealm[plexus.core, parent: null]]
import: Entry[import org.codehaus.plexus.util.Scanner from realm ClassRealm[plexus.core, parent: null]]
import: Entry[import org.codehaus.plexus.util.DirectoryScanner from realm ClassRealm[plexus.core, parent: null]]
import: Entry[import org.codehaus.plexus.util.AbstractScanner from realm ClassRealm[plexus.core, parent: null]]
import: Entry[import  from realm ClassRealm[maven.api, parent: null]]

-----------------------------------------------------
 (org.jvnet.jaxb2.maven2:maven-jaxb2-plugin:0.12.3:generate:default:generate-sources)

私のpom.xmlファイル:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.ws</groupId>
        <artifactId>spring-ws-core</artifactId>
    </dependency>
    <dependency>
        <groupId>com.bigthunk</groupId>
        <artifactId>BigThunkCore</artifactId>
        <version>0.0.7-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>com.bigthunk</groupId>
        <artifactId>BigThunkWeb</artifactId>
        <version>0.0.4-SNAPSHOT</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <!-- tag::wsdl[] -->
        <plugin>
            <groupId>org.jvnet.jaxb2.maven2</groupId>
            <artifactId>maven-jaxb2-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <schemaLanguage>WSDL</schemaLanguage>
                <generatePackage>hello.wsdl</generatePackage>
                <forceRegenerate>true</forceRegenerate>
                <schemas>
                    <schema>
                        <url>http://172.19.137.21:8280/services/umarketsc?wsdl</url>
                    </schema>
                </schemas>
            </configuration>
        </plugin>
        <!-- end::wsdl[] -->
    </plugins>
</build>

<repositories>
    <repository>
        <id>project.local</id>
        <name>project</name>
        <url>file:${project.basedir}/repo</url>
    </repository>
    <repository>
        <id>spring-releases</id>
        <name>Spring Releases</name>
        <url>https://repo.spring.io/libs-release</url>
    </repository>
</repositories>
<pluginRepositories>
    <pluginRepository>
        <id>spring-releases</id>
        <url>https://repo.spring.io/libs-release</url>
    </pluginRepository>
</pluginRepositories>
18
javawocky

<plugins>タグを<pluginManagement>タグで囲む(詳細はこちら: Spring Data Mavenビルドの「ライフサイクル設定でカバーされないプラグインの実行」の解決方法 ) 。

38

Java Path jreをjdkパスに変更すれば大丈夫です!Eclipseでは、jdkに "Installed JRE"を変更することもできます。

それがあなたのために働くことを願っています。

9
martin

私の場合、プラグインwikiの指示に従ってJAXB仕様バージョンを変更することで修正しました。

https://github.com/highsource/maven-jaxb2-plugin/wiki/Using-a-Specific-JAXB-Version

構成オプションspecVersion = 2.0を使用するか、バージョン固有のプラグインを使用して:maven-jaxb20-plugin

4
Alberto Velasco

私にとって、これは環境(Javaランタイム)の問題です。 WindowsコマンドプロンプトでEclipseを起動することで、私のコンテキストでm2eによって引き起こされる同様の問題を解決できました:Eclipse.exe -vm "C:\ Program Files\Java\jdk1.8.0_25\bin\javaw.exe" "-vmargs")次に、エクスプローラーからEclipseを起動するのと同じ方法でEclipse.iniをクリーンアップしようとしましたが、動作します。 JavavisualでEclipseコマンドを見るとVM Jvisual vmを通してEclipseがそのように見えることがわかります

Eclipse.commands=-os
win32
...
-vm "C:\Program Files\Java\jdk1.8.0_25\bin\javaw.exe"
-vm C:\Program Files\Java\jre1.8.0_25\bin\server\jvm.dll

最後の行は、私のEclipse.iniからではなく、Eclipseランチャーによって追加されました。システムプロパティでは、Eclipse.vm = C:\ Program Files\Java\jre1.8.0_25\bin\server\jvm.dll 「Explorerから起動されたとき」、Eclipse lunaは、Eclipse.iniをオーバーライドするPATHで見つかったjreからパラメーターを追加します...プロセスのさまざまな動作を説明できる環境に何らかの違いがあるはずです。

3
Ronan Fauglas

この問題はありましたが、解決できました。

  1. すべての単一のJREファイルを削除しました(以前のバージョンと現在のバージョン)
  2. 「パス」に追加C:\Program Files\Java\jdk1.8.0_91\jre\bin(Win10で作業しています)
  3. 利益。

問題はバージョン0.12.2-0.13.1にあり、完全に消えました。

1
nEraquasAr

追加

<dependency>
    <groupId>com.Sun.xml.bind</groupId>
    <artifactId>jaxb-impl</artifactId>
    <version>2.2.11</version>
</dependency>

あなたのPOMには、欠落しているクラスが含まれていますが、これで修正しました。

0