gpt4 book ai didi

maven-2 - 如何在 maven-jaxb2-plugin 中指定 JAXB 版本?

转载 作者:行者123 更新时间:2023-12-04 21:23:52 26 4
gpt4 key购买 nike

我需要使用最新版本的 jaxb: 2.2.4-1,但 maven 或 maven-jaxb2-plugin 似乎从 JDK 中选择了那个。

我尝试指定这样的版本:

<configuration>
<specVersion>2.2</specVersion>
...
</configuration>

但日志显示:
[INFO] [jaxb2:generate {execution: common}]
[INFO] Started execution.
[INFO] JAXB API is loaded from the [jar:file:/opt/jdk1.6.0_24/jre/lib/rt.jar!].
[INFO] Detected JAXB API version [2.1].

我尝试向正确版本的 javax.xml.bind:jaxb-api 和 com.sun.xml.bind:jaxb-impl 添加依赖项,但这没有帮助。
<plugins>
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<version>0.8.0</version>

<dependencies>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.2.4</version>
</dependency>

<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.2.4-1</version>
</dependency>
</dependencies>

<executions>
<execution>
<id>common</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<specVersion>2.2</specVersion>
...
</configuration>
</execution>
</executions>
</plugin>
</plugins>

我也尝试使用 maven-jaxb22-plugin 但它也不起作用。

最佳答案

以下代码改编自 netbeans 生成的默认 webapp。它使用依赖插件将 jars 复制到一个临时文件夹,并将该文件夹指定为编译器的认可目录,以便它覆盖 jdk 中的实现。

<properties>
<endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
</properties>

...

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<compilerArguments>
<endorseddirs>${endorsed.dir}</endorseddirs>
</compilerArguments>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<outputDirectory>${endorsed.dir}</outputDirectory>
<silent>true</silent>
<artifactItems>
<artifactItem>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.2.4</version>
<type>jar</type>
</artifactItem>
<artifactItem>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.2.4-1</version>
<type>jar</type>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>

关于maven-2 - 如何在 maven-jaxb2-plugin 中指定 JAXB 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7094574/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com