Java 如何为maven添加一个额外的源目录来编译并包含在构建jar中?
除了src/main/java之外,我还添加了一个src/bootstrap目录,我希望它包含在我的构建过程中,换句话说,我希望maven在我的构建中编译并包含其中的源代码。怎么啦 您可以使用,例如:Java 如何为maven添加一个额外的源目录来编译并包含在构建jar中?,java,maven,maven-2,Java,Maven,Maven 2,除了src/main/java之外,我还添加了一个src/bootstrap目录,我希望它包含在我的构建过程中,换句话说,我希望maven在我的构建中编译并包含其中的源代码。怎么啦 您可以使用,例如: ... org.codehaus.mojo 构建助手maven插件 3.2.0 添加源 生成源 添加源 一些目录 ... 您可以为构建过程添加目录,如: ... <resources> <resource> <directory
...
org.codehaus.mojo
构建助手maven插件
3.2.0
添加源
生成源
添加源
一些目录
...
您可以为构建过程添加目录,如:
...
<resources>
<resource>
<directory>src/bootstrap</directory>
</resource>
</resources>
...
。。。
src/bootstrap
...
src/main/java是pom.xml中不需要提及的默认路径。注意:此解决方案只会将java源文件移动到target/classes目录,而不会编译源文件。
将
pom.xml
更新为-
....
src/main/config
...
...
../src/main/java
也看到
对于最新版本的Maven(3)和最新版本的Maven编译器插件(3.7.0),我注意到,如果包含要添加到构建中的源代码的文件夹位于
目标
文件夹或其子文件夹中,则不需要添加带有构建助手Maven插件
的源文件夹。编译器maven插件似乎可以编译位于该文件夹中的任何java源代码,无论包含它们的目录是什么。
例如,如果在
target/a
中有一些(生成的或没有)源代码,则将编译target/generated source/foo
并将其添加到outputDirectory:target/classes
简单问题:为什么不将源代码移到src/main/java?或者创建一个单独的maven项目/模块,其中包含代码并将其定义为依赖项。在我的例子中,我需要添加一个generated sources文件夹,我更喜欢将其驻留在目标中。或者,您可能希望将集成测试放在src/{main,test}以外的目录中/
这里也讨论了这一点:NetBeans像一个魔咒一样拿起它:)似乎您确实需要删除Eclipse构建路径上添加文件夹的**排除:(@Dormouse您能解释一下吗?不适用于IntelliJ,它会将
视为“资源”文件夹,而不是“源”文件夹,例如,它不会编译其中的Java源文件。此解决方案只会将Java源文件移动到target/classes目录,不会编译源文件eclipse是否真的会将此文件夹识别为任何人的buildpath
s?因为它不适合我。FWIW,我使用m2e
导入项目。Grea我不回答,只是想澄清一下,你应该用上面的行替换你的maven编译器插件…在IntelliJ中也可以使用。Eclipse要求我为m2e安装一个插件,构建助手连接器。我安装了,生命周期错误消失了。生命周期配置中未包含插件执行:org.codehaus.mojo:build helper maven plugin:1.7:添加源代码(执行:添加源代码,阶段:生成源代码)
出现此错误为什么会对人进行否决?基本上与saiky0的答案相同,但更早?@Friso,因为它不正确。添加资源目录将添加资源(文件复制到目标/类,但未编译)。此问题是关于添加一个源目录,其中包含将被编译成目标/类
,而不是复制的文件。这将覆盖默认的src/main/java目录。如果需要多个目录,则还必须指定默认目录。问题是如何添加多个源目录,并且您正在建议一个met目录hod只添加一个源目录,这与要求的相反。
<project>
....
<build>
<resources>
<resource>
<directory>src/main/config</directory>
</resource>
</resources>
...
</build>
...
</project>
<build>
<sourceDirectory>../src/main/java</sourceDirectory>