Plugins 如何使用maven的jaxb_公共插件
我正在尝试使用jaxb插件将接口插入到从maven生成类的choice元素中。问题是,我似乎无法从maven那里弄清楚如何这样做,文档中的存储库不清楚,唯一的示例(bellow)不起作用,它似乎忽略了插件(maven报告没有找到它的错误),或者插件没有项目文档中当前列出的所有附加组件:Plugins 如何使用maven的jaxb_公共插件,plugins,maven-2,jaxb,jaxb2-basics,Plugins,Maven 2,Jaxb,Jaxb2 Basics,我正在尝试使用jaxb插件将接口插入到从maven生成类的choice元素中。问题是,我似乎无法从maven那里弄清楚如何这样做,文档中的存储库不清楚,唯一的示例(bellow)不起作用,它似乎忽略了插件(maven报告没有找到它的错误),或者插件没有项目文档中当前列出的所有附加组件: <plugin> <groupId>org.jvnet.jaxb2.maven2</groupId> <artifactId>maven-jaxb2
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<version>0.6.1</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<generatePackage>br.com.wonder.nfe.xml</generatePackage>
<args>
<arg>-Xifins</arg>
</args>
<plugins>
<plugin>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>basic</artifactId>
<version>0.4.1.5</version>
</plugin>
</plugins>
</configuration>
</plugin>
org.jvnet.jaxb2.maven2
maven-jaxb2-plugin
0.6.1
生成
br.com.wonder.nfe.xml
-西芬斯
org.jvnet.jaxb2_commons
基本的
0.4.1.5
我在根pom中有这些:
<pluginRepositories>
<pluginRepository>
<id>maven2-repository.dev.java.net</id>
<url>http://download.java.net/maven/2</url>
</pluginRepository>
<pluginRepository>
<id>maven-repository.dev.java.net</id>
<name>Java.net Maven 1 Repository (legacy)</name>
<url>http://download.java.net/maven/1</url>
<layout>legacy</layout>
</pluginRepository>
</pluginRepositories>
maven2-repository.dev.java.net
http://download.java.net/maven/2
maven-repository.dev.java.net
Java.net Maven 1存储库(遗留)
http://download.java.net/maven/1
遗产
跑步可以带来:
设置CmdLine选项“[-Xifins,-eption,/home/administrador/JavaApp/wnfe3/wnfe ejb/target/generated sources/xjc/META-INF/sun jaxb.eption]”时出错
嵌入错误:无法识别的参数-Xifins我真的不确定这是解决这个问题的“正确”方法,但这就是我所做的。首先,从下载接口插入插件
xjc if ins.jar
(在java.net maven存储库中找不到包含IfInsertPluginImpl.class
的jar)
然后,在本地存储库中安装jar:
mvn install:install-file -DgroupId=org.jvnet.jaxb2_commons \
-DartifactId=xjc-if-ins \
-Dversion=1.0-SNAPSHOT \
-Dpackaging=jar \
-Dfile=xjc-if-ins.jar
最后,在plugin部分中添加jar作为maven-jaxb2-plugin
的依赖项:
<build>
<plugins>
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<version>0.6.2</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<extension>true</extension>
<args>
<arg>-Xifins</arg>
</args>
<plugins>
<plugin>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>basic</artifactId>
<version>0.4.1.5</version>
</plugin>
</plugins>
</configuration>
<dependencies>
<dependency>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>xjc-if-ins</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</plugin>
...
</plugins>
...
</build>
org.jvnet.jaxb2.maven2
maven-jaxb2-plugin
0.6.2
生成
真的
-西芬斯
org.jvnet.jaxb2_commons
基本的
0.4.1.5
org.jvnet.jaxb2_commons
xjc if-ins
1.0-快照
...
...
正如我所说,这可能不是配置jaxb2插件以使用接口插入插件的最干净的方法,但是,通过这种设置,
生成
目标不会抱怨-Xifins
扩展。不幸的是,接口注入插件似乎不再得到很好的支持。事实上,我很难找到下载的JAR
谢天谢地,提供了一种类似的机制,用于向生成的JAXB存根添加接口(请参阅)
JAXB2基本插件在java.net Maven存储库中提供
使用继承插件,您的POM将如下所示:
<build>
<plugins>
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<version>0.6.2</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<extension>true</extension>
<args>
<arg>-Xinheritance</arg>
</args>
<plugins>
<plugin>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-basics</artifactId>
<version>0.5.3</version>
</plugin>
</plugins>
</configuration>
</plugin>
...
</plugins>
...
</build>
org.jvnet.jaxb2.maven2
提供了一个JAXB绑定的示例。为方便起见,我复制了以下示例:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:inheritance="http://jaxb2-commons.dev.java.net/basic/inheritance"
jaxb:version="2.1"
jaxb:extensionBindingPrefixes="inheritance">
<!-- ... -->
<xs:complexType name="WillBeMadeCloneableType">
<xs:annotation>
<xs:appinfo>
<inheritance:implements>java.lang.Cloneable</inheritance:implements>
</xs:appinfo>
</xs:annotation>
<!-- ... -->
</xs:complexType>
<!-- ... -->
</xs:schema>
java.lang.Cloneable
如果不在本地存储库中添加jar,似乎真的没有办法做到这一点,我为此填写了一个问题,谢谢。我同意,我们不应该做这些手动操作,这个jar应该是1。可以在java.net存储库2中找到。应该添加到插件依赖项中。哦,别忘了接受这个答案:)我应该说有人。我不知道该将依赖关系放在哪里,以便将其从wsimport传递到jaxb。@Sionide21您应该打开一个新问题,注释系统不适合回答这个问题。