我正在尝试找到一个maven插件,它可以在源代码中修改java包声明,然后再运行。更确切地说,源代码是通过jaxb2插件生成的,生成的包(基于命名空间)不能满足我的需要,不幸的是,我不能在这个插件中进行修改;/例如,生成的是aa.bb.Foo.java,我想变成cc.dd.Foo.java。由于maven阴影插件,我只能修改已编译的类,但源代码保持不变,因此输出jars如下:
有什么想法可以让foo.jar兼容Foo-Sourcees.jar吗?
发布于 2014-09-28 09:39:37
Maven JAXB2插件提供了用于指定自定义包名的配置。也许这对你有帮助。
<configuration>
...
<generatePackage>my.own.packagename</generatePackage>
...
</configuration>有关更多信息,请参见这里
http://confluence.highsource.org/display/MJIIP/User+Guide#UserGuide-Controllingtheoutput
更新:
如果您有多个名称空间,您可以使用这样的绑定文件:
<?xml version="1.0" encoding="UTF-8"?>
<jaxb:bindings xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" version="1.0">
<jaxb:bindings schemaLocation="..."
node="//xsd:schema[@targetNamespace='http://demo.ws/address']">
<jaxb:schemaBindings>
<jaxb:package name="demo.ws.address" />
</jaxb:schemaBindings>
</jaxb:bindings>
<jaxb:bindings schemaLocation="..."
node="//xsd:schema[@targetNamespace='http://demo.ws/name']">
<jaxb:schemaBindings>
<jaxb:package name="demo.ws.name" />
</jaxb:schemaBindings>
</jaxb:bindings>
</jaxb:bindings>可以在插件配置中设置此绑定文件:
<configuration>
...
<bindingDirectory>...</bindingDirectory>
<bindingIncludes>
<include>*.xjb</include>
</bindingIncludes>
...
</configuration>https://stackoverflow.com/questions/26083237
复制相似问题