Ответ 1
Прикрепление тега <plugins>
внутри тега <pluginManagement>
(как описано здесь: Как решить "Выполнение плагинов, не охватываемых конфигурацией жизненного цикла" для Spring Data Maven Builds) исправил проблему для меня.
Я пытаюсь сгенерировать источники из файла wsdl, но я все время сталкиваюсь с ошибкой на моем pom.xml, который, я считаю, может быть моей проблемой? Ниже приведена ошибка, которую я получаю от своего пом и мой файл 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)
my 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>
Прикрепление тега <plugins>
внутри тега <pluginManagement>
(как описано здесь: Как решить "Выполнение плагинов, не охватываемых конфигурацией жизненного цикла" для Spring Data Maven Builds) исправил проблему для меня.
Измените свой Java-путь jre на ваш путь jdk, и все будет хорошо! В Eclipse вы также можете изменить свой "Установленный JRE" на ваш jdk.
Надеюсь, что это сработает для вас.
В моем случае я исправил это, изменив версию спецификации JAXB, как указано в вики-плагине:
https://github.com/highsource/maven-jaxb2-plugin/wiki/Using-a-Specific-JAXB-Version
Либо используя параметр конфигурации specVersion = 2.0, либо используя плагин, зависящий от версии: maven-jaxb20-plugin
Для меня это проблема среды (java runtime). Я мог бы решить аналогичную проблему, вызванную m2e в моем контексте, запустив eclipse в командной строке Windows: eclipse.exe -vm "C:\Program Files\Java\jdk1.8.0_25\bin\javaw.exe" (убедитесь, что он появился до "-vmargs" ) Затем я попытался очистить свой eclipse.ini таким же образом, чтобы запустить eclipse из explorer, он работает. Когда я смотрю на команду eclipse в Javavisual VM, я вижу через Jvisual vm, что затмение выглядит таким образом.
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 launcher. В системе prooperties: eclipse.vm = C:\Program Files\Java\jre1.8.0_25\bin\server\jvm.dll Это похоже на "при запуске из проводника", Eclipse luna добавляет параметр из jre, найденный в PATH, который переопределяет eclipse.ini... В среде должно быть какое-то различие, которое может учитывать различное поведение процесса.
У меня была эта проблема, но я смог ее решить:
C:\Program Files\Java\jdk1.8.0_91\jre\bin
(я работаю над Win10)Проблема была в версии 0.12.2 - 0.13.1, и она полностью исчезла.
Добавить
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.2.11</version>
</dependency>
вашему pom, он содержит отсутствующий класс, с этим я его исправил.