首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Maven修改包

Maven修改包
EN

Stack Overflow用户
提问于 2014-09-28 08:54:30
回答 1查看 1K关注 0票数 0

我正在尝试找到一个maven插件,它可以在源代码中修改java包声明,然后再运行。更确切地说,源代码是通过jaxb2插件生成的,生成的包(基于命名空间)不能满足我的需要,不幸的是,我不能在这个插件中进行修改;/例如,生成的是aa.bb.Foo.java,我想变成cc.dd.Foo.java。由于maven阴影插件,我只能修改已编译的类,但源代码保持不变,因此输出jars如下:

  • foo.jar -阴影修改包,准备部署。
  • foo-orginal.jar - jar在改色前,这里没有什么特别的
  • foo-source es.jar-只与foo-orginal.jar兼容的源

有什么想法可以让foo.jar兼容Foo-Sourcees.jar吗?

EN

回答 1

Stack Overflow用户

发布于 2014-09-28 09:39:37

Maven JAXB2插件提供了用于指定自定义包名的配置。也许这对你有帮助。

代码语言:javascript
运行
复制
<configuration>
    ...
    <generatePackage>my.own.packagename</generatePackage>
    ...
</configuration>

有关更多信息,请参见这里

http://confluence.highsource.org/display/MJIIP/User+Guide#UserGuide-Controllingtheoutput

更新:

如果您有多个名称空间,您可以使用这样的绑定文件:

代码语言:javascript
运行
复制
<?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>

可以在插件配置中设置此绑定文件:

代码语言:javascript
运行
复制
<configuration>
    ...
    <bindingDirectory>...</bindingDirectory>
    <bindingIncludes>
        <include>*.xjb</include>
    </bindingIncludes>
    ...
</configuration>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26083237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档