除了src/main/java之外,我还添加了一个src/bootstrap目录,我想把它包含在我的构建过程中,换句话说,我想让maven编译并把那里的源代码包含在我的构建中。
dtcbnfnu1#
您可以使用Build Helper Plugin,例如:
<project> ... <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>3.2.0</version> <executions> <execution> <id>add-source</id> <phase>generate-sources</phase> <goals> <goal>add-source</goal> </goals> <configuration> <sources> <source>some directory</source> ... </sources> </configuration> </execution> </executions> </plugin> </plugins> </build> </project>
doinxwow2#
注意:此解决方案只会将Java源文件移动到目标/classes目录,而不会编译源文件。
pom.xml
<project> .... <build> <resources> <resource> <directory>src/main/config</directory> </resource> </resources> ... </build> ... </project>
tuwxkamq3#
http://maven.apache.org/guides/mini/guide-using-one-source-directory.html
<build> <sourceDirectory>../src/main/java</sourceDirectory>
另见Maven compile with multiple src directories
dhxwm5r44#
对于最新的Maven版本(3)和最新版本的Maven编译器插件(3.7.0),我注意到如果包含要添加到构建中的源代码的文件夹位于target文件夹或其子文件夹中,则不需要添加带有build-helper-maven-plugin的源文件夹。看起来编译器maven插件可以编译位于此文件夹中的任何java源代码,无论这些代码包含在哪个目录中。例如,在target/a中有一些(生成的或没有)源代码,target/generated-source/foo将被编译并添加到outputDirectory中:target/classes .
target
build-helper-maven-plugin
target/a
target/generated-source/foo
target/classes
mmvthczy5#
要将文件夹标记为生成的源文件,并让IntelliJ拾取它,请使用以下命令:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <generatedSourcesDirectory>src/main/generated</generatedSourcesDirectory> </configuration> </plugin>
我花了一个小时来研究如何避免IntelliJ在我手动将target/generated-sources标记为一个generated sources文件夹后恢复。codehaus.mojo插件不起作用。但是这个解决方案起作用了!
yi0zb3m46#
您可以为构建过程添加如下目录:
... <resources> <resource> <directory>src/bootstrap</directory> </resource> </resources> ...
src/main/java是默认路径,不需要在pom.xml中提及
6条答案
按热度按时间dtcbnfnu1#
您可以使用Build Helper Plugin,例如:
doinxwow2#
注意:此解决方案只会将Java源文件移动到目标/classes目录,而不会编译源文件。
将
pom.xml
更新为-tuwxkamq3#
http://maven.apache.org/guides/mini/guide-using-one-source-directory.html
另见
Maven compile with multiple src directories
dhxwm5r44#
对于最新的Maven版本(3)和最新版本的Maven编译器插件(3.7.0),我注意到如果包含要添加到构建中的源代码的文件夹位于
target
文件夹或其子文件夹中,则不需要添加带有build-helper-maven-plugin
的源文件夹。看起来编译器maven插件可以编译位于此文件夹中的任何java源代码,无论这些代码包含在哪个目录中。
例如,在
target/a
中有一些(生成的或没有)源代码,target/generated-source/foo
将被编译并添加到outputDirectory中:target/classes
.mmvthczy5#
要将文件夹标记为生成的源文件,并让IntelliJ拾取它,请使用以下命令:
我花了一个小时来研究如何避免IntelliJ在我手动将target/generated-sources标记为一个generated sources文件夹后恢复。codehaus.mojo插件不起作用。但是这个解决方案起作用了!
yi0zb3m46#
您可以为构建过程添加如下目录:
src/main/java是默认路径,不需要在pom.xml中提及