有没有一种方法可以在一个maven项目中编译多个java源目录?


当前回答

这可以分两步完成:

对于每个源目录,您应该创建自己的模块。 在所有模块中,您应该指定相同的构建目录:${build.directory}

如果你使用已启动的Jetty (Jetty:run),那么重新编译任何模块中的任何类(使用Maven、IDEA或Eclipse)都会导致Jetty重新启动。对于修改后的资源,您将获得相同的行为。

其他回答

这可以分两步完成:

对于每个源目录,您应该创建自己的模块。 在所有模块中,您应该指定相同的构建目录:${build.directory}

如果你使用已启动的Jetty (Jetty:run),那么重新编译任何模块中的任何类(使用Maven、IDEA或Eclipse)都会导致Jetty重新启动。对于修改后的资源,您将获得相同的行为。

我很天真地这样做:

<build>
  <finalName>osmwse</finalName>
  <sourceDirectory>src/main/java, src/interfaces, src/services</sourceDirectory>
</build>

这对我很有效

<build>
    <sourceDirectory>.</sourceDirectory>
    <plugins>
        <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
        <includes>
            <include>src/main/java/**/*.java</include>
            <include>src/main2/java/**/*.java</include>
        </includes>
        </configuration>
        </plugin>
    </plugins>
</build>

通过定义资源标记,这也适用于maven。您可以为src文件夹命名任何您喜欢的名称。

    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.java</include>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
        </resource>

        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.java</include>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
        </resource>

        <resource>
            <directory>src/main/generated</directory>
            <includes>
                <include>**/*.java</include>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
        </resource>
    </resources>

你可以用build-helper添加一个新的源目录:

<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <version>3.2.0</version>
            <executions>
                <execution>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>add-source</goal>
                    </goals>
                    <configuration>
                        <sources>
                            <source>src/main/generated</source>
                        </sources>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>