Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何为maven添加一个额外的源目录来编译并包含在构建jar中?_Java_Maven_Maven 2 - Fatal编程技术网

Java 如何为maven添加一个额外的源目录来编译并包含在构建jar中?

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

除了src/main/java之外,我还添加了一个src/bootstrap目录,我希望它包含在我的构建过程中,换句话说,我希望maven在我的构建中编译并包含其中的源代码。怎么啦

您可以使用,例如:


...
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>