java生成jar 除去注释,Maven:如何在.jar中包含注释生成的.java文件

博客介绍了如何解决在Maven构建中,使用Java7注释处理器生成的源文件无法正确包含在最终.jar文件中的问题。解决方案是通过将maven-resources-plugin绑定到prepare-package阶段,确保在打包前复制这些生成的源文件。
摘要由CSDN通过智能技术生成

我的类路径上有一些Java 7注释处理器(用于xtend).通过一些注释,他们创建了Java文件.

在Elipse和Maven构建中,这都很好用.

生成的文件按预期以目标/生成源/注释结尾.

相应的生成的.class文件也会在预期的位置结束,因此它们是最终jar文件的一部分.

由于我还需要将所有Java源文件包括在GWT的.jar文件中(源和类应该只有一个.jar文件),

我已将src / main / java指定为资源目录(以便Maven将文件复制到类目录中,并最终保存在jar文件中).

resources目录中的技巧实际上不适用于我生成的文件,因为Maven首先复制所有资源,然后开始编译(这反过来将通过注释处理器生成.java文件).

我如何告诉Maven复制也在.jar中包含生成的.java文件?

解决方法:

您可以将maven-resources-plugin绑定到prepare-package阶段,以在正确打包之前复制注释源:

maven-resources-plugin

copy-annotations

prepare-package

copy-resources

target/generated-sources/annotations

...

希望对您有所帮助.

干杯,

标签:maven,xtend,java,gwt

来源: https://codeday.me/bug/20191122/2060370.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: java.lang.ClassNotFoundException是一个常见的错误,通常有几个可能的原因。首先,可能是项目没有引入该类所属的jar包的坐标。你可以查看项目的pom文件,确认是否引入了该jar包的坐标,或者检查项目的Maven dependencies下是否有该class的jar包。\[1\]其次,可能是项目多个maven坐标引入的jar包所依赖有所重叠,导致版本不一致产生冲突。你可以检查刚刚加入maven坐标所依赖的jar包,与项目其他maven坐标引入的jar包所依赖的jar包是否相同。\[1\]简单的解决办法是,将刚刚引入的jar注释掉,然后复制Maven dependencies下所有的jar包名称到记事本文件,再将刚刚引入的jar包解注释,再次复制所有的jar包名称到记事本文件,最后使用代码比对工具比对两者所引入的jar包的区别,以查看是否有jar包依赖的冲突。\[1\]另外,有时候该错误可能是因为在部署路径下的lib文件缺少相应的jar包。你可以进入到tomcat的部署路径下的lib文件夹,检查是否缺少相应的jar包。\[2\]最后,需要注意的是,该错误通常是在程序运行时找不到类,而不是在编译时找不到类。因此,即使在IDEA编译时没有报错,但在运行时仍然可能找不到对应的类。\[3\]希望这些解释能帮助你解决java.lang.ClassNotFoundException的问题。 #### 引用[.reference_title] - *1* [maven工程下 java.lang.ClassNotFoundException原因浅析](https://blog.csdn.net/farYang/article/details/53168233)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Maven项目下java.lang.ClassNotFoundException的解决方法](https://blog.csdn.net/zym2895756/article/details/78233688)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [maven依赖传统导致的 java.lang.NoClassDefFoundError和ClassNotFoundException产生原因以及解决方法](https://blog.csdn.net/qq_45171957/article/details/126899231)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值