Mia*_*ach 4 java maven-plugin maven
我有一个Maven插件,它为我的java项目生成源代码并将它们放入' target/generated-sources '文件夹中.我需要在编译时使用这些源代码.我想在修改它的时候将它们放在我的项目中,已经生成了.当然,我想把它们放在' src '文件夹下的正确文件夹中,而不是' target/generated-sources '.我如何使用Maven组织这个?
换句话说,我希望能够:
通过运行我的特殊源生成插件的一些目标来生成我需要的源代码(已经完成,源代码包含我指定的包)
将这些生成的源移动到标准Maven布局的' src/main/java/... '文件夹中.
从' target/generated-sources '文件夹中删除它们,因为否则mvn clean install命令会引发错误,说明我有"重复的类".实际上,如果我只是将生成的源从目标复制到src - 我必须使用相同名称和包的类,尽管其中一个位于目标文件夹中.
哪个Maven插件可以用这个?我想这是一个典型的任务.
maven中的标准解决方案是生成所有源target/generated-sources
代码,来自target/generated-sources
和来自的所有源代码都src
被编译target/classes
并合并到目标jar中.
插件永远不应该触摸目录下的src
文件,因为这些文件由版本控制系统管理(例如git).
如果插件写的不好和源文件从target/generated-sources
不会自动compilled进入target
,然后用目标build-helper:add-source
从建立帮助Maven插件为@詹姆斯Kingsbery说.
在maven-com4j-plugin源代码中有评论:
/**
* Directory in which to create the Java COM wrapper files. This directory
* will be added to the Maven project's compile source directory list and
* will therfore be auto-compiled when the Maven compile phase is run.
*
* @parameter expression="${outputDirectory}"
* default-value="${project.build.directory}/generated-sources/com4j/java"
*/
Run Code Online (Sandbox Code Playgroud)
您问题的更重要的部分和解决方案是:
该目录将被添加到Maven项目的编译源目录列表中,并且在Maven编译阶段运行时将自动编译
因此,生成的源代码应该自动编译并存档到构建的jar中.
归档时间: |
|
查看次数: |
1305 次 |
最近记录: |