通过Maven编译器插件不会发生有限的包含和排除 - java

我正在使用3.6.0版的maven编译器插件,在此我们只想在特定文件夹中编译一个文件,而在该位置编译所有其他文件。

例如:在文件夹应用程序中有14个文件,从那我只希望编译1个文件,但它编译了所有文件,如果我要排除,则它也不起作用。

 <sourceDirectory>${basedir}/../src/java</sourceDirectory>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.6.0</version>
        <configuration>
             <source>1.7</source>
             <target>1.7</target>
             <encoding>UTF-8</encoding>
             <includes>
                   <include>app/lable.java</include>
             </includes>
             <excludes>
                   <exclude>app/test.java</exclude>
             </excludes>
        </configuration>
 <execution>
<id>someId</id>
       <goals>
           <goal>compile</goal>
       </goals>
       <phase>compile</phase>
     </execution>
</executions>
</plugin>

在此我们使用的是wls maven插件,这有问题吗?

参考方案

从maven-compile-plugin的文档中-

编译器插件有两个目标。两者都已经绑定到他们的
在Maven生命周期内的适当阶段,因此,
在各自的阶段自动执行。
编译器:编译绑定到编译阶段,用于编译
主要的源文件。
编译器:testCompile绑定到
测试编译阶段,用于编译测试源文件。

因此,如果您使用以下命令,它将生成特定的目标-

mvn compiler:compile

坚持使用mvn clean install的另一种方法是将配置移至定义为-

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.6.0</version>
    <configuration>
        <source>1.7</source>
        <target>1.7</target>
        <encoding>UTF-8</encoding>
        <includes>
            <include>app/lable.java</include>
        </includes>
        <excludes>
            <exclude>app/test.java</exclude>
        </excludes>
    </configuration>
    <executions>
        <execution>
           <id>someId</id>
           <goals>
               <goal>compile</goal>
           </goals>
           <phase>compile</phase>
         </execution>
    </executions>
</plugin>

Maven:从jar工件中排除生成的源 - java

Duplicate,但没有答案,无法评论背景信息:我有一个模块,该模块使用xmlbeans-maven-plugin从xsd生成Java源文件并将其编译到其自己的jar中。这可以正常工作,并使用Java源代码创建一个module1 / target / generated-sources文件夹。该模块已构建,但生成的源包含在jar中,这是不必要的,因为xml…

在集成测试阶段执行Maven模块 - java

我想启动一个同级Maven 3模块,该模块在我的一个Maven模块中充当应用程序服务器,以对系统运行集成测试。我的maven项目看起来与此类似:父模块模块A模块B现在,我想在Maven的集成前测试阶段中启动“模块A”,然后运行模块B中包含的所有集成测试。我设法在模块B中运行了集成测试,但是没有找到“光滑”的方法在集成前测试阶段启动模块B。最佳做法是什么?使用…

休眠映射<键,设置<值>> - java

我有以下表格:@Entity @Table(name = "events") Event --id --name @Entity @Table(name = "state") State --id --name @Entity @Table(name = "action") Action --id …

在Maven构建之前如何运行课程? - java

为什么以下原因导致构建失败?我创建了一个应该在maven开始执行构建之前运行的类。 <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.5.…

Maven的Shade插件产生的罐子之间有什么区别? - java

在我的Maven项目中,我尝试使用maven-shade-plugin在运行mvn package时生成一个超级jar。结果,我的目标目录中出现三个jar:original-hello-world-0.1.0-SNAPSHOT.jar hello-world-0.1.0-SNAPSHOT.jar hello-world-0.1.0-SNAPSHOT-shad…