2016-04-29 60 views
0

在maven projet中,我有一个非常特殊的插件(jsweet-maven-plugin),它可以在构建时从声明的依赖关系动态生成.class文件。我需要这些.class文件在构建路径,Maven以及IDE(用于自动完成)。在maven中处理生成时间生成的.class文件

有没有办法在maven中正确处理它?

我能想到的最好方法是做一个专门的maven模块,将这些.class包装在一个jar中,然后将该jar添加为我的其他项目的依赖项。那样。那些.class被正确地添加到构建路径。

但是,此方法在NetBeans IDE中失败,因为IDE将依赖项视为计算机中存在的项目。不是反编译.class,而是寻找相关项目中的源代码,并且因为没有源代码而失败......直到我更改了项目的版本并且IDE依赖于jar而不是源代码。

我很喜欢生成的类文件夹,其行为与生成的源相同,但对于类文件...有没有一个maven-guru会知道一种方式?编辑1:在编译时生成的文件不是java源代码,但已编译的文件(.class扩展名):字节码。

回答

0

有几个办法:

  1. 生成你的类一次,生成的.java文件复制成你的src/main/java下的树,并在POM注释掉自动生成的东西。 XML。这样做的好处是您可以将行为和toString()方法添加到生成的类中,并且IDE自动完成很高兴。缺点是如果你需要再次生成,那么可以进行合理的合并。
  2. 如您所做的那样创建一个单独的库。将库安装到Maven存储库中,并确保已经上传了Java源代码。在IDE中关闭该项目。 (这在Eclipse中有效 - 我期望Netbeans的行为类似)。

我已经尝试了两种方法,总是回到选项1.但是我通常从WSDL生成JAXWS类。您的确切要求对我而言并不熟悉,所以祝您好运!

+0

感谢您的回答。 我已经知道如何处理正确生成的来源,如从WSDL生成的客户端。 但是这里的问题是,这不是生成的java源代码,而是.class文件(字节码)。 –